aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2017-05-12 11:58:09 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-06-09 12:00:48 +0200
commit0505a57d4381f2baaeed73e96b161d0fb313fa5c (patch)
tree267923703f7d8f25638e4c4805c5750ba14c1a13
parent7b60553e360731338631ccdda71590ac5deca137 (diff)
fork: Remove bogus parent PID assertions [BZ #21386]
(cherry picked from commit 1d2bc2eae969543b89850e35e532f3144122d80a)
-rw-r--r--ChangeLog7
-rw-r--r--NEWS1
-rw-r--r--sysdeps/nptl/fork.c8
3 files changed, 8 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 33d05e4878..3d4f5f8350 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-06-07 Arjun Shankar <arjun.is@lostca.se>
* sysdeps/unix/sysv/linux/tst-clone2.c: Do not
diff --git a/NEWS b/NEWS
index 71b41ea625..82a718ff64 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,7 @@ Security related changes:
The following bugs are resolved with this release:
[21289] Fix symbol redirect for fts_set
+ [21386] Assertion in fork for distinct parent PID is incorrect
Version 2.24
diff --git a/sysdeps/nptl/fork.c b/sysdeps/nptl/fork.c
index 02ff793ae7..a5d1e86d71 100644
--- a/sysdeps/nptl/fork.c
+++ b/sysdeps/nptl/fork.c
@@ -131,10 +131,6 @@ __libc_fork (void)
__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;
@@ -222,8 +216,6 @@ __libc_fork (void)
}
else
{
- assert (THREAD_GETMEM (THREAD_SELF, tid) == ppid);
-
/* Release acquired locks in the multi-threaded case. */
if (multiple_threads)
{