[LTP] [PATCH] clone/clone07: only kill child if clone() succeeded

Han Pingtian hanpt@linux.vnet.ibm.com
Thu Apr 14 10:46:33 CEST 2016


Or when -1 passed as pid to kill(), a lot of processes will be killed.

Signed-off-by: Han Pingtian <hanpt@linux.vnet.ibm.com>
---
 testcases/kernel/syscalls/clone/clone07.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/clone/clone07.c b/testcases/kernel/syscalls/clone/clone07.c
index 8c723de..ed59670 100644
--- a/testcases/kernel/syscalls/clone/clone07.c
+++ b/testcases/kernel/syscalls/clone/clone07.c
@@ -64,6 +64,10 @@ int main(int ac, char **av)
 
 		child_pid = ltp_clone(SIGCHLD, do_child, NULL,
 				      CHILD_STACK_SIZE, child_stack);
+
+		if (child_pid < 0)
+			tst_brkm(TBROK | TERRNO, cleanup, "clone failed");
+
 		if ((wait(&status)) == -1)
 			tst_brkm(TBROK | TERRNO, cleanup,
 				 "wait failed, status: %d", status);
@@ -107,7 +111,8 @@ static void setup(void)
 
 static void cleanup(void)
 {
-	kill(child_pid, SIGKILL);
+	if (child_pid > 0)
+		kill(child_pid, SIGKILL);
 }
 
 static int do_child(void)
-- 
1.9.3



More information about the ltp mailing list