Browse Source

fix copy/paste error in popen changes that broke signals

signal mask was not being restored after fork, but instead blocked again.
Rich Felker 12 years ago
parent
commit
f1b23d41cf
1 changed files with 1 additions and 1 deletions
  1. 1 1
      src/stdio/popen.c

+ 1 - 1
src/stdio/popen.c

@@ -42,7 +42,7 @@ FILE *popen(const char *cmd, const char *mode)
 	if (pid) {
 	if (pid) {
 		__release_ptc();
 		__release_ptc();
 		__syscall(SYS_close, p[1-op]);
 		__syscall(SYS_close, p[1-op]);
-		sigprocmask(SIG_BLOCK, SIGALL_SET, &old);
+		sigprocmask(SIG_SETMASK, &old, 0);
 		if (pid < 0) {
 		if (pid < 0) {
 			fclose(f);
 			fclose(f);
 			return 0;
 			return 0;