In recent commit of
v8.8.0-41-g41eb0f446c I've suggested during
review to put both xdr_free() calls under error label, assuming
that xdr_free() accepts NULL and thus is a NOP when the control
jumps onto the label even before either of @arg or @ret was
allocated. Well, turns out, xdr_free() does no accept NULL and
thus we have to guard its call. But since @dispatcher is already
set by the time either of the variables is allocated, we can
replace the condition from 'if (dispatcher)' to 'if (arg)' and
'if (ret)'.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
return virNetServerClientSendMessage(client, msg);
error:
- if (dispatcher) {
+ if (arg)
xdr_free(dispatcher->arg_filter, arg);
+ if (ret)
xdr_free(dispatcher->ret_filter, ret);
- }
/* Bad stuff (de-)serializing message, but we have an
* RPC error message we can send back to the client */