|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.6 02/13] libxl: properly clean up array in libxl_list_cpupool failure path
On Thu, 2015-07-23 at 08:59 +0100, Wei Liu wrote:
> Document how cpupool_info works. Distinguish success (ERROR_FAIL +
> ENOENT) vs failure in libxl_list_cpupool and properly clean up the
> array
> in failure path.
>
> Also switch to libxl__realloc and call libxl_cpupool_{init,dispose}
> where appropriate.
>
> There is change of behaviour. Previously if memory allocation fails
> the
> said function returns NULL. Now memory allocation failure is fatal.
> This
> is in line with how we deal with memory allocation failure in other
> places in libxl though.
I think this function would benefit from making the out: label be the
error path and the success case just a return ptr (just before the
label).
Then your error handling for cpupool_info would become
libxl_cpupoolinfo_dispose(&info);
if (errno != ENOENT) goto out;
break;
and the "if (failed)" block would be at the out label (without the
iff).
Such splitting of the success/failure case is allowed if the only
shared code would be the GC_FREE, which is the case here.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |