From: Peter Zelezny Date: Fri, 13 Oct 2017 20:49:49 +0000 (+0200) Subject: nptl: Preserve error in setxid thread broadcast in coredumps [BZ #22153] X-Git-Tag: glibc-2.27~692 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=e4f530da0db59ff51549c11ed6ef799b4ade1c87;p=glibc.git nptl: Preserve error in setxid thread broadcast in coredumps [BZ #22153] --- diff --git a/ChangeLog b/ChangeLog index 5effbd7956..9121cf66d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2017-10-13 Peter Zelezny + + [BZ #22153] + * nptl/allocatestack.c (__nptl_setxid_error): Preserve error code + in coredumps. + 2017-10-13 James Clarke * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 196371a88f..ad9add8d2a 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -1105,8 +1105,13 @@ __nptl_setxid_error (struct xid_command *cmdp, int error) 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)); }