Handle vfork/exec failure

Don't call atexit, exit without cleanup.
This commit is contained in:
Robin Gareus 2020-10-31 22:33:10 +01:00
parent a9bd7b2848
commit cf0904f752
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 3 additions and 3 deletions

View file

@ -562,7 +562,7 @@ PulseAudioBackend::launch_control_app ()
{ {
if (::vfork () == 0) { if (::vfork () == 0) {
::execlp ("pavucontrol", "pavucontrol", (char*)NULL); ::execlp ("pavucontrol", "pavucontrol", (char*)NULL);
exit (EXIT_SUCCESS); _exit (EXIT_SUCCESS);
} }
} }

View file

@ -72,7 +72,7 @@ PBD::open_uri (const char* uri)
if (::vfork () == 0) { if (::vfork () == 0) {
::execlp ("xdg-open", "xdg-open", s.c_str(), (char*)NULL); ::execlp ("xdg-open", "xdg-open", s.c_str(), (char*)NULL);
exit (EXIT_SUCCESS); _exit (EXIT_SUCCESS);
} }
#endif /* not PLATFORM_WINDOWS and not __APPLE__ */ #endif /* not PLATFORM_WINDOWS and not __APPLE__ */

View file

@ -818,7 +818,7 @@ SystemExec::start (StdErrMode stderr_mode, const char *vfork_exec_wrapper)
char buf = 0; char buf = 0;
(void) ::write (pok[1], &buf, 1); (void) ::write (pok[1], &buf, 1);
close_fd (pok[1]); close_fd (pok[1]);
exit (EXIT_FAILURE); _exit (EXIT_FAILURE);
return -1; return -1;
} }