From da2859532179cc00f0ebfcf679d5fc889e78cf0d Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Wed, 28 Feb 2018 12:24:29 +0100 Subject: [PATCH] Fix incorrect memory handling --- db/rocksdb.go | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/db/rocksdb.go b/db/rocksdb.go index 6e823d59..28908325 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -383,8 +383,12 @@ func (d *RocksDB) GetSpentOutput(txid string, i uint32) (string, uint32, error) if err != nil { return "", 0, err } - o, err := d.getSpentOutput(b) - p, err := unpackOutputValue(o) + val, err := d.db.GetCF(d.ro, d.cfh[cfInputs], b) + if err != nil { + return "", 0, err + } + defer val.Free() + p, err := unpackOutputValue(val.Data()) if err != nil { return "", 0, err } @@ -397,15 +401,6 @@ func (d *RocksDB) GetSpentOutput(txid string, i uint32) (string, uint32, error) return otxid, oi, nil } -func (d *RocksDB) getSpentOutput(key []byte) ([]byte, error) { - val, err := d.db.GetCF(d.ro, d.cfh[cfInputs], key) - if err != nil { - return nil, err - } - defer val.Free() - return val.Data(), nil -} - func (d *RocksDB) writeHeight( wb *gorocksdb.WriteBatch, block *bchain.Block,