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