فهرست منبع

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 سال پیش
والد
کامیت
f1b23d41cf
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  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;