system is a cancellation point
[musl] / src / process / system.c
index ebe207f..0cc8b81 100644 (file)
@@ -13,6 +13,7 @@ weak_alias(dummy_0, __acquire_ptc);
 weak_alias(dummy_0, __release_ptc);
 
 pid_t __vfork(void);
+void __testcancel(void);
 
 int system(const char *cmd)
 {
@@ -21,6 +22,8 @@ int system(const char *cmd)
        struct sigaction sa = { .sa_handler = SIG_IGN }, oldint, oldquit;
        int status = -1, i;
 
+       __testcancel();
+
        if (!cmd) return 1;
 
        sigaction(SIGINT, &sa, &oldint);