Gianni Tedesco
2010-Aug-17 12:43 UTC
[Xen-devel] [PATCH] xl: fix leak in libxl_wait_for_backend()
Another one introduced since the gc patch-set. Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> diff -r f353f1ac38f6 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Tue Aug 17 12:45:44 2010 +0100 +++ b/tools/libxl/libxl_device.c Tue Aug 17 13:47:24 2010 +0100 @@ -457,6 +457,7 @@ int libxl_wait_for_backend(libxl_ctx *ct unsigned int len; char *p; char *path = libxl_sprintf(&gc, "%s/state", be_path); + int rc = -1; while (watchdog > 0) { p = xs_read(ctx->xsh, XBT_NULL, path, &len); @@ -468,10 +469,11 @@ int libxl_wait_for_backend(libxl_ctx *ct XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access backend %s", be_path); } - return -1; + goto out; } else { if (!strcmp(p, state)) { - return 0; + rc = 0; + goto out; } else { usleep(100000); watchdog--; @@ -479,6 +481,7 @@ int libxl_wait_for_backend(libxl_ctx *ct } } XL_LOG(ctx, XL_LOG_ERROR, "Backend %s not ready", be_path); +out: libxl_free_all(&gc); return -1; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Gianni Tedesco
2010-Aug-17 13:08 UTC
Re: [Xen-devel] [PATCH] xl: fix leak in libxl_wait_for_backend()
On Tue, 2010-08-17 at 14:08 +0100, Marc - A. Dahlhaus wrote:> Am Dienstag, den 17.08.2010, 13:43 +0100 schrieb Gianni Tedesco: > > Another one introduced since the gc patch-set. > > > > Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> > > > --8<-- > > +out: > > libxl_free_all(&gc); > > return -1; > This needs to be rc instead of -1 then? > > MarcOf course, yes, how foolish of me. 8<---------------------------------------------------------- Another one introduced since the gc patch-set. Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> diff -r f353f1ac38f6 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Tue Aug 17 12:45:44 2010 +0100 +++ b/tools/libxl/libxl_device.c Tue Aug 17 14:12:53 2010 +0100 @@ -457,6 +457,7 @@ int libxl_wait_for_backend(libxl_ctx *ct unsigned int len; char *p; char *path = libxl_sprintf(&gc, "%s/state", be_path); + int rc = -1; while (watchdog > 0) { p = xs_read(ctx->xsh, XBT_NULL, path, &len); @@ -468,10 +469,11 @@ int libxl_wait_for_backend(libxl_ctx *ct XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access backend %s", be_path); } - return -1; + goto out; } else { if (!strcmp(p, state)) { - return 0; + rc = 0; + goto out; } else { usleep(100000); watchdog--; @@ -479,7 +481,8 @@ int libxl_wait_for_backend(libxl_ctx *ct } } XL_LOG(ctx, XL_LOG_ERROR, "Backend %s not ready", be_path); +out: libxl_free_all(&gc); - return -1; + return rc; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Marc - A. Dahlhaus
2010-Aug-17 13:08 UTC
Re: [Xen-devel] [PATCH] xl: fix leak in libxl_wait_for_backend()
Am Dienstag, den 17.08.2010, 13:43 +0100 schrieb Gianni Tedesco:> Another one introduced since the gc patch-set. > > Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com> >--8<--> +out: > libxl_free_all(&gc); > return -1;This needs to be rc instead of -1 then? Marc _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel