Skip to content

Commit

Permalink
libcacard: fix resource leak
Browse files Browse the repository at this point in the history
In function connect_to_qemu(), getaddrinfo() will allocate memory
that is stored into server, it should be freed by using freeaddrinfo()
before connect_to_qemu() return.

Cc: qemu-stable@nongnu.org
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
colo-ft authored and bonzini committed Nov 14, 2014
1 parent c52e679 commit 5bbebf6
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion libcacard/vscclient.c
Expand Up @@ -597,7 +597,7 @@ connect_to_qemu(
const char *port
) {
struct addrinfo hints;
struct addrinfo *server;
struct addrinfo *server = NULL;
int ret, sock;

sock = socket(AF_INET, SOCK_STREAM, 0);
Expand Down Expand Up @@ -629,9 +629,14 @@ connect_to_qemu(
if (verbose) {
printf("Connected (sizeof Header=%zd)!\n", sizeof(VSCMsgHeader));
}

freeaddrinfo(server);
return sock;

cleanup_socket:
if (server) {
freeaddrinfo(server);
}
closesocket(sock);
return -1;
}
Expand Down

0 comments on commit 5bbebf6

Please sign in to comment.