X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fcontext_save.c;h=1a381db2b30cdb01f0d1f4b9512ea495c04cb1a5;hb=adf591eb56d60000e806e20c42eb1907e2cc6fcd;hp=e62aca834c1de8bae60bd0c2c51f37842a377585;hpb=714b5c530ece27ea2835a313013f5b770163403c;p=mmh diff --git a/sbr/context_save.c b/sbr/context_save.c index e62aca8..1a381db 100644 --- a/sbr/context_save.c +++ b/sbr/context_save.c @@ -68,27 +68,23 @@ context_save(void) static int m_chkids(void) { - int i; pid_t pid; if (getuid() == geteuid()) return (-1); - for (i = 0; (pid = fork()) == -1 && i < 5; i++) - sleep(5); + switch (pid = fork()) { + case -1: + break; - switch (pid) { - case -1: - break; + case 0: + setgid(getgid()); + setuid(getuid()); + break; - case 0: - setgid(getgid()); - setuid(getuid()); - break; - - default: - pidwait(pid, -1); - break; + default: + pidwait(pid, -1); + break; } return pid;