diff options
author | kib <kib@FreeBSD.org> | 2015-09-05 08:55:51 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-09-05 08:55:51 +0000 |
commit | 438719ab519dd2b4b76f22db4f09fc1ecacd16f4 (patch) | |
tree | d0067728c5e8d2139aa12f79004c5285fec61bba /lib/libc/gen/wordexp.c | |
parent | 906861047e3b66a3d4c92eb83ea28b542ca143ff (diff) | |
download | FreeBSD-src-438719ab519dd2b4b76f22db4f09fc1ecacd16f4.zip FreeBSD-src-438719ab519dd2b4b76f22db4f09fc1ecacd16f4.tar.gz |
MFC r287292:
Switch libc from using _sig{procmask,action,suspend} symbols, which
are aliases for the syscall stubs and are plt-interposed, to the
libc-private aliases of internally interposed sigprocmask() etc.
MFC r287300:
Use libthr interposed functions instead of syscalls, in posix_spawn()'
child.
Diffstat (limited to 'lib/libc/gen/wordexp.c')
-rw-r--r-- | lib/libc/gen/wordexp.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libc/gen/wordexp.c b/lib/libc/gen/wordexp.c index c7f4b1d..329044d 100644 --- a/lib/libc/gen/wordexp.c +++ b/lib/libc/gen/wordexp.c @@ -38,6 +38,7 @@ #include <unistd.h> #include <wordexp.h> #include "un-namespace.h" +#include "libc_private.h" __FBSDID("$FreeBSD$"); @@ -127,12 +128,12 @@ we_askshell(const char *words, wordexp_t *we, int flags) return (WRDE_NOSPACE); /* XXX */ (void)sigemptyset(&newsigblock); (void)sigaddset(&newsigblock, SIGCHLD); - (void)_sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock); + (void)__libc_sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock); if ((pid = fork()) < 0) { serrno = errno; _close(pdes[0]); _close(pdes[1]); - (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + (void)__libc_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); errno = serrno; return (WRDE_NOSPACE); /* XXX */ } @@ -141,7 +142,7 @@ we_askshell(const char *words, wordexp_t *we, int flags) * We are the child; just get /bin/sh to run the wordexp * builtin on `words'. */ - (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + (void)__libc_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); if ((pdes[1] != STDOUT_FILENO ? _dup2(pdes[1], STDOUT_FILENO) : _fcntl(pdes[1], F_SETFD, 0)) < 0) @@ -210,7 +211,7 @@ cleanup: do wpid = _waitpid(pid, &status, 0); while (wpid < 0 && errno == EINTR); - (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + (void)__libc_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); if (error != 0) { errno = serrno; return (error); |