From: Eric Blake Date: Tue, 31 Dec 2013 14:09:23 +0000 (-0700) Subject: event: don't overwrite registration error message X-Git-Tag: CVE-2013-6458-1~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cfd62c1f610801ae7e7d2aceaef00a4108fd9074;p=thirdparty%2Flibvirt.git event: don't overwrite registration error message Prior to this patch, an attempt to register an event without an event loop started results in the vague: libvirt: Remote Driver error : adding cb to list Now it gives the much nicer: libvirt: error : internal error: could not initialize domain event timer This also avoids hiding other reasonable error messages, such as attempts to register a duplicate callback or OOM errors. * src/remote/remote_driver.c (remoteConnectNetworkEventRegisterAny) (remoteConnectDomainEventRegister) (remoteConnectDomainEventRegisterAny): Preserve more detailed error. Signed-off-by: Eric Blake --- diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index be282d6dfc..b952e57bb5 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -2,7 +2,7 @@ * remote_driver.c: driver to provide access to libvirtd running * on a remote machine * - * Copyright (C) 2007-2013 Red Hat, Inc. + * Copyright (C) 2007-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -2932,10 +2932,8 @@ remoteConnectNetworkEventRegisterAny(virConnectPtr conn, net, eventID, VIR_OBJECT_EVENT_CALLBACK(callback), opaque, freecb, - &callbackID)) < 0) { - virReportError(VIR_ERR_RPC, "%s", _("adding cb to list")); + &callbackID)) < 0) goto done; - } /* If this is the first callback for this eventID, we need to enable * events on the server */ @@ -4424,10 +4422,8 @@ static int remoteConnectDomainEventRegister(virConnectPtr conn, remoteDriverLock(priv); if ((count = virDomainEventStateRegister(conn, priv->domainEventState, - callback, opaque, freecb)) < 0) { - virReportError(VIR_ERR_RPC, "%s", _("adding cb to list")); + callback, opaque, freecb)) < 0) goto done; - } if (count == 1) { /* Tell the server when we are the first callback deregistering */ @@ -5234,10 +5230,8 @@ static int remoteConnectDomainEventRegisterAny(virConnectPtr conn, priv->domainEventState, dom, eventID, callback, opaque, freecb, - &callbackID)) < 0) { - virReportError(VIR_ERR_RPC, "%s", _("adding cb to list")); + &callbackID)) < 0) goto done; - } /* If this is the first callback for this eventID, we need to enable * events on the server */