From: Matthias Bolte Date: Wed, 25 May 2011 13:52:34 +0000 (+0200) Subject: esx: Report an error when auth pointer is missing instead of declining X-Git-Tag: CVE-2011-2178~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dea64db1d20fd05502989008eb2324c24eacb5b7;p=thirdparty%2Flibvirt.git esx: Report an error when auth pointer is missing instead of declining Otherwise an attempt to use virConnectOpen or virConnectOpenAuth without auth pointer results in the driver declining the URI and libvirt falling back to the remote driver for an esx:// URI. --- diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 7fe5446839..845dd4a319 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -922,9 +922,18 @@ esxOpen(virConnectPtr conn, virConnectAuthPtr auth, int flags ATTRIBUTE_UNUSED) return VIR_DRV_OPEN_DECLINED; } - /* Decline URIs without server part, or missing auth */ - if (conn->uri->server == NULL || auth == NULL || auth->cb == NULL) { - return VIR_DRV_OPEN_DECLINED; + /* Require server part */ + if (conn->uri->server == NULL) { + ESX_ERROR(VIR_ERR_INVALID_ARG, "%s", + _("URI is missing the server part")); + return VIR_DRV_OPEN_ERROR; + } + + /* Require auth */ + if (auth == NULL || auth->cb == NULL) { + ESX_ERROR(VIR_ERR_INVALID_ARG, "%s", + _("Missing or invalid auth pointer")); + return VIR_DRV_OPEN_ERROR; } /* Allocate per-connection private data */