[libvirt] [PATCH 1/4] qemu: Separate CPU updating code from qemuProcessReconnect
Pavel Hrdina
phrdina at redhat.com
Mon Oct 16 15:36:40 UTC 2017
On Thu, Oct 12, 2017 at 09:18:36AM +0200, Jiri Denemark wrote:
> On Wed, Oct 11, 2017 at 19:42:36 +0200, Marc Hartmayer wrote:
> > On Wed, Oct 11, 2017 at 12:11 PM +0200, Jiri Denemark <jdenemar at redhat.com> wrote:
> > > The new function is called qemuProcessRefreshCPU.
> > >
> > > Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> > > ---
> > > src/qemu/qemu_process.c | 66 ++++++++++++++++++++++++++++++++-----------------
> > > 1 file changed, 43 insertions(+), 23 deletions(-)
> > >
> > > diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> > > index 0cb023095b..5ed6b68eb8 100644
> > > --- a/src/qemu/qemu_process.c
> > > +++ b/src/qemu/qemu_process.c
> > > @@ -6876,6 +6876,47 @@ qemuProcessRefreshDisks(virQEMUDriverPtr driver,
> > > }
> > >
> > >
> > > +static int
> > > +qemuProcessRefreshCPU(virQEMUDriverPtr driver,
> > > + virDomainObjPtr vm)
> > > +{
> > > + virCapsPtr caps = virQEMUDriverGetCapabilities(driver, false);
> > > + virCPUDefPtr host = NULL;
> > > + int ret = -1;
> > > +
> > > + if (!virQEMUCapsGuestIsNative(caps->host.arch, vm->def->os.arch) ||
> > > + !caps->host.cpu ||
> > > + !vm->def->cpu)
> > > + return 0;
> > > +
> > > + if (!caps)
> > > + goto cleanup;
> >
> > That's somehow weird... We access 'caps->host.arch'/ 'caps->host.cpu'
> > and after that we're checking for a null pointer?!
>
> Oops, yes. Consider the following patch squashed in:
>
> diff --git i/src/qemu/qemu_process.c w/src/qemu/qemu_process.c
> index 5ed6b68eb8..8c33af28dd 100644
> --- i/src/qemu/qemu_process.c
> +++ w/src/qemu/qemu_process.c
> @@ -6884,14 +6884,14 @@ qemuProcessRefreshCPU(virQEMUDriverPtr driver,
> virCPUDefPtr host = NULL;
> int ret = -1;
>
> + if (!caps)
> + return -1;
> +
> if (!virQEMUCapsGuestIsNative(caps->host.arch, vm->def->os.arch) ||
> !caps->host.cpu ||
> !vm->def->cpu)
> return 0;
This will leak the caps reference.
Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20171016/2aae31b8/attachment-0001.sig>
More information about the libvir-list
mailing list