From 135629ccab14878a16d38c7b2744f3c92b5ff734 Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 4 Nov 2011 05:05:06 +0100 Subject: [PATCH] prevent zombie processes on cmd_extscript --- src/cmd_neonserv_extscript.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cmd_neonserv_extscript.c b/src/cmd_neonserv_extscript.c index 2d7e0bd..37d6f91 100644 --- a/src/cmd_neonserv_extscript.c +++ b/src/cmd_neonserv_extscript.c @@ -117,6 +117,9 @@ CMD_BIND(neonserv_cmd_extscript) { struct ClientSocket *textbot = getTextBot(); pid_t pID = fork(); if (pID == 0) { //We're the child process :D + pID = fork(); + if(pID < 0) exit(EXIT_FAILURE); + if(pID != 0) exit(EXIT_SUCCESS); char *a; while (fgets(command, 1024, fp) != NULL) { if((a = strchr(command, '\n'))) @@ -127,12 +130,13 @@ CMD_BIND(neonserv_cmd_extscript) { reply(textbot, user, "%s", command); } pclose(fp); - exit(0); + exit(EXIT_FAILURE); } else if (pID < 0) { reply(getTextBot(), user, "internal bot error - please contact an administrator!"); pclose(fp); } else { //parent bot - continue program + wait(NULL); } } else { //error -- 2.20.1