block all signals, even implementation-internal ones, in faccessat child
authorRich Felker <dalias@aerifal.cx>
Fri, 9 Aug 2013 23:56:53 +0000 (19:56 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 9 Aug 2013 23:56:53 +0000 (19:56 -0400)
the child process's stack may be insufficient size to support a signal
frame, and there is no reason these signal handlers should run in the
child anyway.

src/unistd/faccessat.c

index 0256d60feeba47c57c690f82f85cbe5f4f7880b5..6a88097dde9db8b877648729ecbafb63d33588a0 100644 (file)
@@ -37,7 +37,7 @@ int faccessat(int fd, const char *filename, int amode, int flag)
        if (pipe(p)) return __syscall_ret(-EBUSY);
        struct ctx c = { .fd = fd, .filename = filename, .amode = amode, .p = p[1] };
 
-       __block_app_sigs(&set);
+       __block_all_sigs(&set);
        
        ret = __clone(checker, stack+sizeof stack, 0, &c);
        __syscall(SYS_close, p[1]);