aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2011-12-24 23:47:11 +0000
committerStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2012-01-06 15:07:14 +0000
commita46667ea29218565473e430ceae62e2838f6ce3f (patch)
tree5bb29acbe34491cd2272608d97950cb73ecbb67d /net
parentbb16172c52ac18742f3df156912c169904e92147 (diff)
downloadqemu-a46667ea29218565473e430ceae62e2838f6ce3f.zip
qemu-a46667ea29218565473e430ceae62e2838f6ce3f.tar.gz
qemu-a46667ea29218565473e430ceae62e2838f6ce3f.tar.bz2
net/socket.c: Fix fd leak in net_socket_listen_init() error paths
Fix a leak of a file descriptor due to missing closesocket() calls in error paths in net_socket_listen_init(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Diffstat (limited to 'net')
-rw-r--r--net/socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c
index aaf9be4..c9d70d3 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -427,12 +427,14 @@ static int net_socket_listen_init(VLANState *vlan,
if (ret < 0) {
perror("bind");
g_free(s);
+ closesocket(fd);
return -1;
}
ret = listen(fd, 0);
if (ret < 0) {
perror("listen");
g_free(s);
+ closesocket(fd);
return -1;
}
s->vlan = vlan;