X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fprocess%2Fsystem.c;h=9135b815daa37cefae7ec89eaa54db95e5042014;hb=3fe595de83e398dbc3cdbe303cacaf8485c9ae08;hp=0aa34cd033201e13b28edd71c3130d12ffe8ba5d;hpb=a8799356d560d3b02a19a4bda4a638a4a9a80856;p=musl diff --git a/src/process/system.c b/src/process/system.c index 0aa34cd0..9135b815 100644 --- a/src/process/system.c +++ b/src/process/system.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -7,20 +7,14 @@ #include "pthread_impl.h" #include "libc.h" -static void dummy_0() -{ -} -weak_alias(dummy_0, __acquire_ptc); -weak_alias(dummy_0, __release_ptc); - -extern char **environ; +extern char **__environ; int system(const char *cmd) { pid_t pid; sigset_t old, reset; struct sigaction sa = { .sa_handler = SIG_IGN }, oldint, oldquit; - int status = 0x7f00, ret; + int status = -1, ret; posix_spawnattr_t attr; pthread_testcancel(); @@ -40,7 +34,7 @@ int system(const char *cmd) posix_spawnattr_setsigdefault(&attr, &reset); posix_spawnattr_setflags(&attr, POSIX_SPAWN_SETSIGDEF|POSIX_SPAWN_SETSIGMASK); ret = posix_spawn(&pid, "/bin/sh", 0, &attr, - (char *[]){"sh", "-c", (char *)cmd, 0}, environ); + (char *[]){"sh", "-c", (char *)cmd, 0}, __environ); posix_spawnattr_destroy(&attr); if (!ret) while (waitpid(pid, &status, 0)<0 && errno == EINTR);