[libvirt] [PATCH] qemu: Avoid crashes in qemuDomainMachineIs*()

Daniel P. Berrange berrange at redhat.com
Tue Oct 10 15:10:36 UTC 2017


On Tue, Oct 10, 2017 at 05:05:33PM +0200, Andrea Bolognani wrote:
> On Tue, 2017-10-10 at 15:49 +0100, Daniel P. Berrange wrote:
> > I think rather than trying to fix up the assumption about
> > machine being non-NULL, we should restructure the ARGV
> > parsing into we need a 2 pass process.
> > 
> > In the first pass only look for the -machine arg. If no
> > -machine arg is given, we should fill in the default machine
> > for that emulator.
> 
> I can do this...
> 
> > In the second pass process the rest of the ARGV, whereupon
> > we have a valid assumption that machine is non-NULL.
> 
> ... but I'm not sure doing this is a good idea.
> 
> Wouldn't it be much safer to leave the newly-added NULL checks
> in place so that the qemuDomainMachineIs*() functions are locally
> correct instead of relying on external guarantees in order not
> to crash on the user?

Are these qemuDomainMachineIs* functions the only places that makes
assumptions about machine being non-NULL though ? I wouldn't want to
encourage the idea that it is OK to have a NULL machine value, because
that would just push crashes to elsewhere in the code if people rely
on it.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list