diff options
author | Kevin Wolf <kwolf@redhat.com> | 2009-12-02 12:24:42 +0100 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-03 11:45:50 -0600 |
commit | 1e784fd7fccbab2e4c161f02d890ba304e0fdd3f (patch) | |
tree | bb44439c735a0ccc875827a8ad082b9964846d6e /misc.c | |
parent | a6ecd0ff1bbf38e5bc36dd9a0ecd5d3cf4112a81 (diff) | |
download | slirp-1e784fd7fccbab2e4c161f02d890ba304e0fdd3f.zip slirp-1e784fd7fccbab2e4c161f02d890ba304e0fdd3f.tar.gz slirp-1e784fd7fccbab2e4c161f02d890ba304e0fdd3f.tar.bz2 |
Don't leak file descriptorsv0.12.1v0.12.0-rc2v0.12.0-rc1v0.12.0-rc0v0.12.0
We're leaking file descriptors to child processes. Set FD_CLOEXEC on file
descriptors that don't need to be passed to children to stop this misbehaviour.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -125,7 +125,7 @@ int fork_exec(struct socket *so, const char *ex, int do_pty) addr.sin_port = 0; addr.sin_addr.s_addr = INADDR_ANY; - if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0 || + if ((s = qemu_socket(AF_INET, SOCK_STREAM, 0)) < 0 || bind(s, (struct sockaddr *)&addr, addrlen) < 0 || listen(s, 1) < 0) { lprint("Error: inet socket: %s\n", strerror(errno)); @@ -158,7 +158,7 @@ int fork_exec(struct socket *so, const char *ex, int do_pty) * Connect to the socket * XXX If any of these fail, we're in trouble! */ - s = socket(AF_INET, SOCK_STREAM, 0); + s = qemu_socket(AF_INET, SOCK_STREAM, 0); addr.sin_addr = loopback_addr; do { ret = connect(s, (struct sockaddr *)&addr, addrlen); |