This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/25093] New: sparc64 sigsetjmp buffer size mismatch


https://sourceware.org/bugzilla/show_bug.cgi?id=25093

            Bug ID: 25093
           Summary: sparc64 sigsetjmp buffer size mismatch
           Product: glibc
           Version: 2.32
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: tg at mirbsd dot de
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

Created attachment 12036
  --> https://sourceware.org/bugzilla/attachment.cgi?id=12036&action=edit
patch

While reviewing a bug in µClibc-ng, which uses the same sigsetjmp structure as
glibc but actually uses the __mask_was_saved member during siglongjmp, I found
that said member was at offset 496, not 512 as expected (and therefore, the
structure was too short).

Looking at what it does, it calls the getcontext syscall, and the kernel side
of the structure has one more member in the FPU registers (which doesn’t exist
on sparc32 apparently and maybe therefore was missed?).

Adding the missing FPU member (patch attached) makes the offsetof the
__mask_was_saved member jump to 512 (at least in µClibc-ng, didn’t check
glibc).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]