On Tue, 7 Mar 2023 at 18:27, David Woodhouse <dw...@infradead.org> wrote: > > From: Paul Durrant <pdurr...@amazon.com> > > Signed-off-by: Paul Durrant <pdurr...@amazon.com> > Signed-off-by: David Woodhouse <d...@amazon.co.uk> > Reviewed-by: Paul Durrant <p...@xen.org> > ---
Hi; Coverity points out a memory leak in this code (CID 1508098): > +static struct qemu_xs_handle *libxenstore_open(void) > +{ > + struct xs_handle *xsh = xs_open(0); > + struct qemu_xs_handle *h = g_new0(struct qemu_xs_handle, 1); Here we allocate memory... > + > + if (!xsh) { > + return NULL; ...but here we can return without freeing it... > + } > + > + h = g_new0(struct qemu_xs_handle, 1); ...and here we allocate a second time and overwrite the pointer to the first allocation. Deleting the first call to g_new0() would fix both of these. > + h->xsh = xsh; > + > + notifier_list_init(&h->notifiers); > + qemu_set_fd_handler(xs_fileno(h->xsh), watch_event, NULL, h); > + > + return h; > +} thanks -- PMM