xfs
[Top] [All Lists]

Re: [PATCH] xfs: fix memory leak in xfs_dir2_node_removename

To: Roger Willcocks <roger@xxxxxxxxxxxxxxxx>
Subject: Re: [PATCH] xfs: fix memory leak in xfs_dir2_node_removename
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Fri, 27 Sep 2013 14:52:54 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1380310573.22649.1082.camel@xxxxxxxxxxxxxxxxxxxxxxxx>
References: <20130927130140.640252809@xxxxxxx> <1380310573.22649.1082.camel@xxxxxxxxxxxxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0
On 09/27/13 14:36, Roger Willcocks wrote:

On Fri, 2013-09-27 at 08:01 -0500, Mark Tinguely wrote:
plain text document attachment
(xfs-fix-leak-in-xfs_dir2_node_removename.patch)
Free the memory pointed to by state before returning on error from
xfs_dir2_node_removename.c

Signed-off-by: Mark Tinguely<tinguely@xxxxxxx>
---
Found by Coverity (134681) in userspace, same patch applies there
also.


Is the first hunk right ?

xfs_da_node_lookup_int called as

         error = xfs_da_node_lookup_int(state,&rval);

and returns with

         *result = retval;
         return(0);

so, on return, error == 0 and rval == an error code. The next lines:

         if (error)
                 rval = error;

won't change that. But previously if rval != EEXIST you returned rval.
With the change below, you return error, which is zero.

--
Roger


Thanks, guilty as charged. need to add the error = EEXIST.

--Mark.

<Prev in Thread] Current Thread [Next in Thread>