71 lines
2.0 KiB
Diff
71 lines
2.0 KiB
Diff
|
From b8d2e394a2900cef5bbbe0503f15960f64a943b1 Mon Sep 17 00:00:00 2001
|
|||
|
From: Florian Weimer <fweimer@redhat.com>
|
|||
|
Date: Fri, 9 Jun 2017 13:21:43 +0200
|
|||
|
Subject: fork: Remove bogus parent PID assertions [BZ #21386]
|
|||
|
|
|||
|
(cherry picked from commit 1d2bc2eae969543b89850e35e532f3144122d80a)
|
|||
|
|
|||
|
diff --git a/ChangeLog b/ChangeLog
|
|||
|
index 290515a58e..d44aff0a36 100644
|
|||
|
--- a/ChangeLog
|
|||
|
+++ b/ChangeLog
|
|||
|
@@ -1,3 +1,10 @@
|
|||
|
+2017-05-12 Florian Weimer <fweimer@redhat.com>
|
|||
|
+
|
|||
|
+ [BZ #21386]
|
|||
|
+ * sysdeps/nptl/fork.c (__libc_fork): Remove assertions on the
|
|||
|
+ parent PID. The assertion in the child is incorrect with PID
|
|||
|
+ namespaces.
|
|||
|
+
|
|||
|
2017-03-15 Joseph Myers <joseph@codesourcery.com>
|
|||
|
|
|||
|
* sysdeps/x86/fpu/test-math-vector-sincos.h (INIT_VEC_PTRS_LOOP):
|
|||
|
diff --git a/NEWS b/NEWS
|
|||
|
index fee1cf8ca8..d52872323d 100644
|
|||
|
--- a/NEWS
|
|||
|
+++ b/NEWS
|
|||
|
@@ -14,6 +14,7 @@ The following bugs are resolved with this release:
|
|||
|
[21109] Tunables broken on big-endian
|
|||
|
[21115] sunrpc: Use-after-free in error path in clntudp_call
|
|||
|
[21289] Fix symbol redirect for fts_set
|
|||
|
+ [21386] Assertion in fork for distinct parent PID is incorrect
|
|||
|
|
|||
|
Version 2.25
|
|||
|
|
|||
|
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
|
|||
|
index db6d721fce..4bb87e2331 100644
|
|||
|
--- a/sysdeps/nptl/fork.c
|
|||
|
+++ b/sysdeps/nptl/fork.c
|
|||
|
@@ -131,10 +131,6 @@ __libc_fork (void)
|
|||
|
call_function_static_weak (__malloc_fork_lock_parent);
|
|||
|
}
|
|||
|
|
|||
|
-#ifndef NDEBUG
|
|||
|
- pid_t ppid = THREAD_GETMEM (THREAD_SELF, tid);
|
|||
|
-#endif
|
|||
|
-
|
|||
|
#ifdef ARCH_FORK
|
|||
|
pid = ARCH_FORK ();
|
|||
|
#else
|
|||
|
@@ -147,8 +143,6 @@ __libc_fork (void)
|
|||
|
{
|
|||
|
struct pthread *self = THREAD_SELF;
|
|||
|
|
|||
|
- assert (THREAD_GETMEM (self, tid) != ppid);
|
|||
|
-
|
|||
|
/* See __pthread_once. */
|
|||
|
if (__fork_generation_pointer != NULL)
|
|||
|
*__fork_generation_pointer += __PTHREAD_ONCE_FORK_GEN_INCR;
|
|||
|
@@ -230,8 +224,6 @@ __libc_fork (void)
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
- assert (THREAD_GETMEM (THREAD_SELF, tid) == ppid);
|
|||
|
-
|
|||
|
/* Release acquired locks in the multi-threaded case. */
|
|||
|
if (multiple_threads)
|
|||
|
{
|
|||
|
--
|
|||
|
2.13.1
|
|||
|
|