fix copy/paste error in popen changes that broke signals
[musl] / src / stdio / popen.c
index 0c9f24e..ca3cdf9 100644 (file)
@@ -38,11 +38,11 @@ FILE *popen(const char *cmd, const char *mode)
        
        __acquire_ptc();
        pid = __vfork();
-       __release_ptc();
 
        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;