Parcourir la 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 il y a 12 ans
Parent
commit
f1b23d41cf
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  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) {
 		__release_ptc();
 		__syscall(SYS_close, p[1-op]);
-		sigprocmask(SIG_BLOCK, SIGALL_SET, &old);
+		sigprocmask(SIG_SETMASK, &old, 0);
 		if (pid < 0) {
 			fclose(f);
 			return 0;