Patchwork slirp: Put forked exec into separate process group

login
register
mail settings
Submitter Jan Kiszka
Date May 30, 2011, 8:21 p.m.
Message ID <4DE3FC3D.7070409@web.de>
Download mbox | patch
Permalink /patch/97953/
State New
Headers show

Comments

Jan Kiszka - May 30, 2011, 8:21 p.m.
From: Jan Kiszka <jan.kiszka@siemens.com>

Recent smb daemons tend to terminate themselves via a process group
SIGTERM. If the daemon is still in qemu's group by that time, qemu will
die as well. Avoid this by always pushing fork_exec processes into a
group of their own, not just (unused) type 2 execs.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 slirp/misc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Patch

diff --git a/slirp/misc.c b/slirp/misc.c
index 08eba6a..34179e2 100644
--- a/slirp/misc.c
+++ b/slirp/misc.c
@@ -153,11 +153,12 @@  fork_exec(struct socket *so, const char *ex, int do_pty)
 		return 0;
 
 	 case 0:
+                setsid();
+
 		/* Set the DISPLAY */
 		if (do_pty == 2) {
 			(void) close(master);
 #ifdef TIOCSCTTY /* XXXXX */
-			(void) setsid();
 			ioctl(s, TIOCSCTTY, (char *)NULL);
 #endif
 		} else {