From d55e586bc6af90cf7a4fecb74aeab3f50bd06e2c Mon Sep 17 00:00:00 2001 From: herman ten brugge Date: Mon, 14 Sep 2020 19:31:56 +0200 Subject: [PATCH] Fix boundschecking fork for macos/SELINUX lib/bcheck.c: - Use INIT_SEM for child process fork on macos tests/tests2/Makefile: - tcc -run does not work for fork due to SHARED mmap --- lib/bcheck.c | 5 ++++- tests/tests2/Makefile | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/bcheck.c b/lib/bcheck.c index e96b7ab3..33e15fad 100644 --- a/lib/bcheck.c +++ b/lib/bcheck.c @@ -1376,7 +1376,10 @@ pid_t fork(void) WAIT_SEM(); retval = (*fork_redir)(); - POST_SEM(); + if (retval == 0) + INIT_SEM(); + else + POST_SEM(); return retval; } #endif diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile index 93e4062d..f7f47910 100644 --- a/tests/tests2/Makefile +++ b/tests/tests2/Makefile @@ -94,6 +94,7 @@ GEN-ALWAYS = ./a.exe 114_bound_signal.test: FLAGS += -b +114_bound_signal.test: NORUN = true # tcc -run does not support fork and -b and SELINUX 115_bound_setjmp.test: FLAGS += -b 116_bound_setjmp2.test: FLAGS += -b 117_builtins.test: T1 = ( $(TCC) -run $1 && $(TCC) -b -run $1 )