File nptl-setxid-error.patch of Package glibc.14271
2017-10-13 Peter Zelezny <peter.zelezny@dektech.com.au>
[BZ #22153]
* nptl/allocatestack.c (__nptl_setxid_error): Preserve error code
in coredumps.
Index: glibc-2.26/nptl/allocatestack.c
===================================================================
--- glibc-2.26.orig/nptl/allocatestack.c
+++ glibc-2.26/nptl/allocatestack.c
@@ -1088,8 +1088,13 @@ __nptl_setxid_error (struct xid_command
if (olderror == error)
break;
if (olderror != -1)
- /* Mismatch between current and previous results. */
- abort ();
+ {
+ /* Mismatch between current and previous results. Save the
+ error value to memory so that is not clobbered by the
+ abort function and preserved in coredumps. */
+ volatile int xid_err __attribute__((unused)) = error;
+ abort ();
+ }
}
while (atomic_compare_and_exchange_bool_acq (&cmdp->error, error, -1));
}