On 9/27/13 9:00 AM, tinguely@xxxxxxx wrote:
> Free the memory in error path of xlog_recover_add_to_trans().
> Normally this memory is freed in recovery pass2, but is leaked
> in the error path.
> Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
For this local leak & the fix,
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Since this gets called in a loop from xlog_recover_process_data(),
I'm wondering what happens to previously-allocated items, if we
return an error and never get to pass2?
(I could be off base, haven't really followed it through, but
it seems like they might leak).
> Found by Coverity (134683) in userspace, same patch applies there
> fs/xfs/xfs_log_recover.c | 1 +
> 1 file changed, 1 insertion(+)
> Index: b/fs/xfs/xfs_log_recover.c
> --- a/fs/xfs/xfs_log_recover.c
> +++ b/fs/xfs/xfs_log_recover.c
> @@ -1585,6 +1585,7 @@ xlog_recover_add_to_trans(
> "bad number of regions (%d) in inode log format",
> + free(ptr);
> return XFS_ERROR(EIO);
> xfs mailing list