In tdb_transaction_recover(), need free data before return, otherwise it will cause memory leak. Signed-off-by: Wu Guanghao <wuguanghao3@xxxxxxxxxx> Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> Reviewed-by: Wu Bo <wubo40@xxxxxxxxxx> --- lib/ext2fs/tdb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ext2fs/tdb.c b/lib/ext2fs/tdb.c index 5091b128..ddfcf130 100644 --- a/lib/ext2fs/tdb.c +++ b/lib/ext2fs/tdb.c @@ -2186,6 +2186,7 @@ int tdb_transaction_recover(struct tdb_context *tdb) rec.data_len, 0) == -1) { TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery data\n")); tdb->ecode = TDB_ERR_IO; + free(data); return -1; } --