From: Eric Blake Date: Sat, 11 Dec 2010 00:28:58 +0000 (-0700) Subject: daemon: plug a memory leak X-Git-Tag: v0.8.7~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24384a75790994dd7c14dba9cacf9ae5480d6372;p=thirdparty%2Flibvirt.git daemon: plug a memory leak * daemon/libvirtd.c (qemudFreeClient): Avoid a leak. (qemudDispatchServer): Avoid null dereference. --- diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index 791b3dc7b5..2914f2fa8a 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -1410,7 +1410,7 @@ static int qemudDispatchServer(struct qemud_server *server, struct qemud_socket /* Client is running as root, so disable auth */ if (uid == 0) { VIR_INFO(_("Turn off polkit auth for privileged client pid %d from %s"), - pid, addrstr); + pid, client->addrstr); client->auth = REMOTE_AUTH_NONE; } } @@ -1451,7 +1451,7 @@ static int qemudDispatchServer(struct qemud_server *server, struct qemud_socket } else { PROBE(CLIENT_TLS_FAIL, "fd=%d", client->fd); VIR_ERROR(_("TLS handshake failed for client %s: %s"), - addrstr, gnutls_strerror (ret)); + client->addrstr, gnutls_strerror (ret)); goto error; } } @@ -2283,6 +2283,7 @@ static void qemudFreeClient(struct qemud_client *client) { if (client->conn) virConnectClose(client->conn); virMutexDestroy(&client->lock); + VIR_FREE(client->addrstr); VIR_FREE(client); }