From 049cd8e961bcddfcdafa2d756b5ee0c7418180ff Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Fri, 17 Oct 2003 00:45:49 +0000 Subject: [PATCH] kill init-pid more sanity checks git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@191 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/ctx-kill.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/util-vserver/src/ctx-kill.c b/util-vserver/src/ctx-kill.c index a8209a7..dcf1d37 100644 --- a/util-vserver/src/ctx-kill.c +++ b/util-vserver/src/ctx-kill.c @@ -159,6 +159,7 @@ static void doKillAll(struct ArgInfo const * const args) { size_t i=0; + pid_t init_pid = vc_X_getinitpid(0); signal(SIGSTOP, SIG_IGN); @@ -171,6 +172,9 @@ doKillAll(struct ArgInfo const * const args) next_time += atoi(args->argv[i]); iterateThroughProc(&doKillAllSingle, args, &sig); + if (init_pid!=-1 && init_pid>1 && init_pid!=getpid()) + kill(init_pid, sig); + while (time(0)0) usleep(args->interval * 1000); @@ -224,6 +228,8 @@ childFunc(void *args_v) Emkdir("old/foo",0600); Emount("none", "/proc", "proc", 0, 0); + // TODO: drop additional capabilities? + // TODO: it may be be better for ctx-shutdown to: // * generate ctx with S_CTX_INFO_INIT // * send kill to -1 @@ -321,6 +327,11 @@ int main(int argc, char *argv[]) if (args.type==tpPID) args.ctx = determineContext(args.pid); + + if (args.ctx==0) { + WRITE_MSG(2, "Can not operate in ctx 0\n"); + return EXIT_FAILURE; + } args.argc = argc-optind; args.argv = argv+optind; -- 1.8.1.5