X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fvspace.c;h=202012b9024b47a0c7be77a1f435b7810bc4387b;hb=8463f7b04ea526fac094ed007284cc682aadaa56;hp=940255ff5201697f8ea5673db3a63d80a648abcb;hpb=d72a60793b771339dcabe2e52570f014b114cd26;p=util-vserver.git diff --git a/src/vspace.c b/src/vspace.c index 940255f..202012b 100644 --- a/src/vspace.c +++ b/src/vspace.c @@ -114,6 +114,8 @@ newSpaces(uint_least64_t mask, const char *cmd) if (mask == 0) return; + mask &= ~CLONE_FS; + signal(SIGCHLD, SIG_DFL); #ifdef NDEBUG @@ -173,14 +175,17 @@ int main(int argc, char *argv[]) do_enter = true; xid = Evc_xidopt2xid(optarg,true); break; - case 'm' : - if (!isNumberUnsigned(optarg, &mask, true)) { + case 'm' : { + unsigned long mask_l; + if (!isNumberUnsigned(optarg, &mask_l, true)) { WRITE_MSG(2, "Invalid mask '"); WRITE_STR(2, optarg); WRITE_MSG(2, "'; try '--help' for more information\n"); return wrapper_exit_code; } + mask = mask_l; break; + } case 'M' : mask |= CLONE_NEWNS; break; case 'F' : mask |= CLONE_FS; break; case 'I' : mask |= CLONE_NEWIPC; break; @@ -205,8 +210,6 @@ int main(int argc, char *argv[]) WRITE_MSG(2, "No operation was specified; try '--help' for more information\n"); else if (sum>1) WRITE_MSG(2, "Can not specify multiple operations; try '--help' for more information\n"); - else if (mask==0) - WRITE_MSG(2, "Must specify at least one space; try '--help' for more information\n"); else if (optind==argc && (do_new || do_enter)) WRITE_MSG(2, "No command specified; try '--help' for more information\n"); else {