[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.5] tools/libxl: Use of init()/dispose() to avoid leaking libxl_dominfo.ssid_label
On Mon, Jan 05, 2015 at 02:19:58PM +0000, Andrew Cooper wrote: > libxl_dominfo contains a ssid_label pointer which will have memory allocated > for it in libxl_domain_info() if the hypervisor has CONFIG_XSM compiled. > However, the lack of appropriate use of libxl_dominfo_{init,dispose}() will > cause the label string to be leaked, even in success cases. > > This was discovered by XenServers Coverity scanning, and are issues not > identified by upstream Coverity Scan. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> > CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Reviewed-by : Wei Liu <wei.liu2@xxxxxxxxxx> > CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > > --- > > Requesting a release-exception as suggested by IanJ. These are memory leaks > which accumulate via the successful completion of libxl library functions (if > XSM is enabled), which will undoubtedly cause issues for the likes of libvirt > and xenopsd-libxl which use libxl in daemon processes. > > As we are very close to the release, I have opted for the more > obviously-correct code rather than the pragmatically better code, particularly > in two locations where libxl_domain_info() is called in a loop, and the > dispose()/init() pair is required to prevent leaking the allocation on each > iteration. > > All of the uses of libxl_domain_info() patched here could better be an > xc_dominfo_getlist() which reduces the quantity of hypercalls made, and the > amount of data transformation done behind the scenes. > --- > tools/libxl/libxl.c | 26 ++++++++++++++++++++++++-- > tools/libxl/libxl_dom.c | 14 ++++++++++---- > 2 files changed, 34 insertions(+), 6 deletions(-) > > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c > index 50a8928..372dd3b 100644 > --- a/tools/libxl/libxl.c > +++ b/tools/libxl/libxl.c > @@ -364,6 +364,8 @@ int libxl__domain_rename(libxl__gc *gc, uint32_t domid, (This function is really convoluted. :-/) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |