On Fri, Aug 01, 2014 at 09:59:18AM -0500, Eric Sandeen wrote:
> parent_list() has instances where a handle is leaked,
> both by going out of scope, and on error paths.
>
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> ---
Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>
> io/parent.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/io/parent.c b/io/parent.c
> index 56e126d..0313119 100644
> --- a/io/parent.c
> +++ b/io/parent.c
> @@ -293,7 +293,7 @@ print_parent_entry(parent_t *parent, int fullpath)
> static int
> parent_list(int fullpath)
> {
> - void *handlep;
> + void *handlep = NULL;
> size_t handlen;
> int error, i;
> int retval = 1;
> @@ -313,6 +313,7 @@ parent_list(int fullpath)
> progname, path, strerror(errno));
> goto error;
> }
> + free_handle(fshandle, fshlen);
> }
>
> if (path_to_handle(path, &handlep, &handlen) != 0) {
> @@ -325,7 +326,7 @@ parent_list(int fullpath)
> if (!parentbuf) {
> fprintf(stderr, _("%s: unable to allocate parent
> buffer: %s\n"),
> progname, strerror(errno));
> - return 1;
> + goto error;
> }
>
> if (fullpath) {
> @@ -365,6 +366,7 @@ parent_list(int fullpath)
>
> retval = 0;
> error:
> + free(handlep);
> free(parentbuf);
> return retval;
> }
> --
> 1.7.1
>
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs
|