[libvirt] [PATCH] virhook: do not save the return value of virBuildPath

Ján Tomko jtomko at redhat.com
Thu Feb 11 06:54:09 UTC 2016


On Wed, Feb 10, 2016 at 07:02:35PM +0100, Andrea Bolognani wrote:
> On Wed, 2016-02-10 at 17:19 +0100, Ján Tomko wrote:
> > This function returns -1 on allocation error, there's no
> > need to check the path for NULL again.
> > ---
> >  src/util/virhook.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
>
> > @@ -276,8 +275,7 @@ virHookCall(int driver,
> >      if (extra == NULL)
> >          extra = "-";
> >  
> > -    ret = virBuildPath(&path, LIBVIRT_HOOK_DIR, drvstr);
> > -    if ((ret < 0) || (path == NULL)) {
> > +    if (virBuildPath(&path, LIBVIRT_HOOK_DIR, drvstr) < 0) {
> >          virReportError(VIR_ERR_INTERNAL_ERROR,
> >                         _("Failed to build path for %s hook"),
> >                         drvstr);
> 
> ACK.
> 
> Unrelated to your changes, I notice the return value for the second
> failure is -1, but the comments for virHookCall() say
> 
>   Returns: 0 if the execution succeeded, 1 if the script was not found
>            or invalid parameters, and -1 if script returned an error
> 
> so I wonder if it should be changed to 1 instead... The script can't
> have returned an error if we haven't been able to build its path :)
> 

How do you know? We did not even get to running it. :)

In theory, bailing out because building the script path got an OOM error
is better than quietly skipping the hook script.

In practice, if we returned 1 on OOM in virBuildPath, the next
allocation will probably also fail and we won't even try to start the
domain.

Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160211/d44f358d/attachment-0001.sig>


More information about the libvir-list mailing list