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 )