On 05/13/2010 02:05 AM, Jiri Denemark wrote:
> ---
> src/remote/remote_driver.c | 19 ++++++++++++++++++-
> 1 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
> index 990bfce..80977a3 100644
> --- a/src/remote/remote_driver.c
> +++ b/src/remote/remote_driver.c
> @@ -2849,17 +2849,34 @@ remoteDomainMigratePrepare2 (virConnectPtr dconn,
> goto done;
>
> if (ret.cookie.cookie_len > 0) {
> + if (!cookie || !cookielen) {
> + remoteError(VIR_ERR_INTERNAL_ERROR, "%s",
> + _("caller ignores cookie or cookielen"));
For a moment, I wondered if VIR_ERR_INVALID_ARG would be any better
here, but decided you probably did the right thing since this is
implementation rather than a direct public API.
> + goto error;
> + }
> *cookie = ret.cookie.cookie_val; /* Caller frees. */
> *cookielen = ret.cookie.cookie_len;
> }
> - if (ret.uri_out)
> + if (ret.uri_out) {
> + if (!uri_out) {
> + remoteError(VIR_ERR_INTERNAL_ERROR, "%s",
> + _("caller ignores uri_out"));
> + goto error;
> + }
> *uri_out = *ret.uri_out; /* Caller frees. */
> + }
>
> rv = 0;
>
> done:
> remoteDriverUnlock(priv);
> return rv;
> +error:
> + if (ret.cookie.cookie_len)
> + VIR_FREE(ret.cookie.cookie_val);
> + if (ret.uri_out)
> + VIR_FREE(*ret.uri_out);
> + goto done;
> }
ACK; looks nicer than v1 for diagnosing a logic bug in the caller,
rather than papering over it.
--
Eric Blake [email protected] +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
