[Bug libc/34530] New: Regression in POWER fortified longjmp with pointer guard rotation

fweimer at redhat dot com via Glibc-bugs <[email protected]>
Newsgroups gmane.comp.lib.glibc.bugs
Message-ID <[email protected]/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=34530

            Bug ID: 34530
           Summary: Regression in POWER fortified longjmp with pointer
                    guard rotation
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: fweimer at redhat dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---
            Target: powerpc*-linux-gnu

After commit 78f1f0e39cd41d28ae771eb3498bc33780c85cfd ("Consolidate the C
pointer guard and align the assembly implementations"), PTR_DEMANGLE3 on POWER
no longer atomically updates the destination register. The fortified longjmp
relies on atomic update of the stack pointer
sysdeps/powerpc/powerpc64/__longjmp-common.S:

#ifdef PTR_DEMANGLE
# ifdef CHECK_SP
        PTR_DEMANGLE3 (r22, r22, r25)
# else
        PTR_DEMANGLE3 (r1, r22, r25)
# endif
#endif

If a signal arrives at the wrong time, the kernel will see a garbage stack
pointer and fails to push the signal frame.

Seen as a nptl/tst-cancel32 failure.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.