aboutsummaryrefslogtreecommitdiffstats
path: root/connect.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-09-20 14:18:23 +0200
committerGerd Hoffmann <kraxel@redhat.com>2012-09-20 14:18:54 +0200
commit907093ff80f9935179f7e1cec8f66dd3ae329e89 (patch)
tree513089cdf1b5dce704e7e3533136c25b6c3f5c32 /connect.c
parenta0508cbf6d021b1c7549714b9c2907146317de66 (diff)
downloadvconsole-907093ff80f9935179f7e1cec8f66dd3ae329e89.tar.gz
plug more memory holes
Diffstat (limited to 'connect.c')
-rw-r--r--connect.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/connect.c b/connect.c
index 7bc025a..2ea444c 100644
--- a/connect.c
+++ b/connect.c
@@ -58,6 +58,7 @@ static void connect_close(virConnectPtr c, int reason, void *opaque)
static void connect_list(struct vconsole_connect *conn)
{
+ virDomainPtr d;
int i, n;
char **inactive;
int *active;
@@ -66,7 +67,9 @@ static void connect_list(struct vconsole_connect *conn)
active = malloc(sizeof(int) * n);
n = virConnectListDomains(conn->ptr, active, n);
for (i = 0; i < n; i++) {
- domain_update(conn, virDomainLookupByID(conn->ptr, active[i]), -1);
+ d = virDomainLookupByID(conn->ptr, active[i]);
+ domain_update(conn, d, -1);
+ virDomainFree(d);
}
free(active);
@@ -74,7 +77,9 @@ static void connect_list(struct vconsole_connect *conn)
inactive = malloc(sizeof(char *) * n);
n = virConnectListDefinedDomains(conn->ptr, inactive, n);
for (i = 0; i < n; i++) {
- domain_update(conn, virDomainLookupByName(conn->ptr, inactive[i]), -1);
+ d = virDomainLookupByName(conn->ptr, inactive[i]);
+ domain_update(conn, d, -1);
+ virDomainFree(d);
free(inactive[i]);
}
free(inactive);