[libvirt] [PATCH 00/12] Various libxl driver improvements

Jim Fehlig jfehlig at suse.com
Wed Sep 4 21:09:13 UTC 2013


John Ferlan wrote:
> On 09/03/2013 07:57 PM, Jim Fehlig wrote:
>   
>> Jim Fehlig wrote:
>>     
> <...snip...>
>   
>> I addressed the review comments from the various patches and pushed the
>> series.  Thanks for the reviews!
>>
>> Regards,
>> Jim
>>
>>     
>
> The changes have resulted in one Coverity found issue that seems to
> have been there "for a while" (at least as far as git blame is concerned).
>
> In libxlDomainCoreDump() Coverity has noted a FORWARD_NULL reference:
>
> 2004 	    if ((flags & VIR_DUMP_CRASH) && !vm->persistent) {
> 2005 	        virDomainObjListRemove(driver->domains, vm);
>
> (20) Event assign_zero: 	Assigning: "vm" = "NULL".
> Also see events: 	[var_deref_model]
>
> 2006 	        vm = NULL;
> 2007 	    }
> 2008 	
> 2009 	    ret = 0;
> 2010 	
> 2011 	cleanup_unpause:
>
> (21) Event var_deref_model: 	Passing null pointer "vm" to function "virDomainObjIsActive(virDomainObjPtr)", which dereferences it. [details]
> Also see events: 	[assign_zero]
>
> 2012 	    if (virDomainObjIsActive(vm) && paused) {
> 2013 	        if (libxl_domain_unpause(priv->ctx, dom->id) != 0) {
> 2014 	            virReportError(VIR_ERR_INTERNAL_ERROR,
> 2015 	                           _("After dumping core, failed to resume domain '%d' with"
>
>
> Not quite sure which is the best course of action, but it seems
> there needs to be at least a "if (vm && virDomainObjIsActive(vm)..."
>   

It took me a bit to figure out why the IsActive test is even needed, but
I think it is to handle !VIR_DUMP_LIVE and VIR_DUMP_CRASH.  I.e. we
don't want to unpause a domain we just crashed.  Checking for non-NULL
vm is certainly one way to fix the coverity warning.

> Also, the ListRemove call could probably be moved up into the
> previous if condition since they both require VIR_DUMP_CRASH
>   

Thanks for pointing that out.  What do you think of the attached patch?

Regards,
Jim
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libxl-coverity-fix.patch
Type: text/x-patch
Size: 2362 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130904/9d05d5cb/attachment-0001.bin>


More information about the libvir-list mailing list