diff options
Diffstat (limited to 'main/vlc/fix-waitpid-usage.patch')
-rw-r--r-- | main/vlc/fix-waitpid-usage.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/main/vlc/fix-waitpid-usage.patch b/main/vlc/fix-waitpid-usage.patch new file mode 100644 index 0000000000..5d19ddb1d6 --- /dev/null +++ b/main/vlc/fix-waitpid-usage.patch @@ -0,0 +1,42 @@ +--- vlc-2.1.0.orig/modules/misc/inhibit/xdg.c 2013-06-24 21:00:38.000000000 +0300 ++++ vlc-2.1.0/modules/misc/inhibit/xdg.c 2013-10-07 14:06:43.450029073 +0300 +@@ -66,7 +66,7 @@ + { + int status; + +- while (waitpid (pid, &status, 0) == -1); ++ while (waitpid (pid, &status, 0) == -1 && errno != ECHILD); + } + else + { +--- vlc-2.1.0.orig/modules/stream_filter/decomp.c 2013-09-12 18:18:33.000000000 +0300 ++++ vlc-2.1.0/modules/stream_filter/decomp.c 2013-10-07 14:07:58.616288530 +0300 +@@ -386,7 +386,7 @@ + return VLC_SUCCESS; + + if (p_sys->pid != -1) +- while (waitpid (p_sys->pid, &(int){ 0 }, 0) == -1); ++ while (waitpid (p_sys->pid, &(int){ 0 }, 0) == -1 && errno != ECHILD); + vlc_mutex_destroy (&p_sys->lock); + vlc_cond_destroy (&p_sys->wait); + free (p_sys); +@@ -411,7 +411,7 @@ + close (p_sys->write_fd); + + msg_Dbg (obj, "waiting for PID %u", (unsigned)p_sys->pid); +- while (waitpid (p_sys->pid, &status, 0) == -1); ++ while (waitpid (p_sys->pid, &status, 0) == -1 && errno != ECHILD); + msg_Dbg (obj, "exit status %d", status); + + if (p_sys->peeked) +--- vlc-2.1.0.orig/src/posix/netconf.c 2013-06-24 21:00:39.000000000 +0300 ++++ vlc-2.1.0/src/posix/netconf.c 2013-10-07 14:05:49.603654117 +0300 +@@ -93,7 +93,7 @@ + while (len < sizeof (buf)); + + close(fd[0]); +- while (waitpid(pid, &(int){ 0 }, 0) == -1); ++ while (waitpid(pid, &(int){ 0 }, 0) == -1 && errno != ECHILD); + + if (len >= 9 && !strncasecmp(buf, "direct://", 9)) + return NULL; |