From: Eric Sandeen Date: Thu, 1 Aug 2013 01:42:58 +0000 (+0000) Subject: xfsprogs: fix buffer leak in xlog_print_find_oldest X-Git-Tag: v3.2.0-alpha1~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a134873e2903837bdbeab261b6d0ceee2fd499ba;p=thirdparty%2Fxfsprogs-dev.git xfsprogs: fix buffer leak in xlog_print_find_oldest The error path in this function did not free the buffer before returning. Coverity found this one. Signed-off-by: Eric Sandeen Reviewed-by: Mark Tinguely --- diff --git a/logprint/log_print_all.c b/logprint/log_print_all.c index 462618623..11944695b 100644 --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -29,7 +29,7 @@ xlog_print_find_oldest( xfs_buf_t *bp; xfs_daddr_t first_blk; uint first_half_cycle, last_half_cycle; - int error; + int error = 0; if (xlog_find_zeroed(log, &first_blk)) return 0; @@ -43,17 +43,14 @@ xlog_print_find_oldest( last_half_cycle = xlog_get_cycle(XFS_BUF_PTR(bp)); ASSERT(last_half_cycle != 0); - if (first_half_cycle == last_half_cycle) { /* all cycle nos are same */ + if (first_half_cycle == last_half_cycle) /* all cycle nos are same */ *last_blk = 0; - } else { /* have 1st and last; look for middle cycle */ + else /* have 1st and last; look for middle cycle */ error = xlog_find_cycle_start(log, bp, first_blk, last_blk, last_half_cycle); - if (error) - return error; - } xlog_put_bp(bp); - return 0; + return error; } void