diff options
author | Richard Weinberger <richard@nod.at> | 2013-08-18 13:30:09 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2013-09-07 10:57:07 +0200 |
commit | 250127216dd6635f5730752d7444bdec992aecb0 (patch) | |
tree | 568f2faaf4f8e86d54902aa8a1927afd51ff9fbf /arch/um | |
parent | 91d44ff860a9e9c0db81a89cbc24fa31fbd8e6d3 (diff) | |
download | linux-250127216dd6635f5730752d7444bdec992aecb0.tar.gz linux-250127216dd6635f5730752d7444bdec992aecb0.tar.bz2 linux-250127216dd6635f5730752d7444bdec992aecb0.zip |
um: Run UML in it's own session.
If UML is not run by a shell it can happen that UML
will kill unrelated proceses upon a fatal exit because
it issues a kill(0, ...).
To prevent such oddities we create a new session in main().
Reported-and-tested-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/os-Linux/main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/um/os-Linux/main.c b/arch/um/os-Linux/main.c index 749c96da7b99..e1704ff600ff 100644 --- a/arch/um/os-Linux/main.c +++ b/arch/um/os-Linux/main.c @@ -123,6 +123,8 @@ int __init main(int argc, char **argv, char **envp) setup_env_path(); + setsid(); + new_argv = malloc((argc + 1) * sizeof(char *)); if (new_argv == NULL) { perror("Mallocing argv"); |