Bug 1579730 - glibc: Fix i386 sigaction sa_restorer initialization
Summary: glibc: Fix i386 sigaction sa_restorer initialization
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: glibc
Version: 7.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Florian Weimer
QA Contact: qe-baseos-tools
URL:
Whiteboard:
Depends On:
Blocks: 1643040
TreeView+ depends on / blocked
 
Reported: 2018-05-18 08:25 UTC by Florian Weimer
Modified: 2019-08-06 12:49 UTC (History)
8 users (show)

Fixed In Version: glibc-2.17-266.el7
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-08-06 12:48:58 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2019:2118 None None None 2019-08-06 12:49:27 UTC
Sourceware 21269 None None None 2019-06-06 14:32:24 UTC

Description Florian Weimer 2018-05-18 08:25:17 UTC
Certain classes of users seem to run into this bug occasionally.  Upstream fix:

commit 68448be208ee06e76665918b37b0a57e3e00c8b4
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Nov 17 16:04:29 2017 -0200

    i386: Fix i386 sigaction sa_restorer initialization (BZ#21269)
    
    This patch fixes the i386 sa_restorer field initialization for sigaction
    syscall for kernel with vDSO.  As described in bug report, i386 Linux
    (and compat on x86_64) interprets SA_RESTORER clear with nonzero
    sa_restorer as a request for stack switching if the SS segment is 'funny'.
    This means that anything that tries to mix glibc's signal handling with
    segmentation (for instance through modify_ldt syscall) is randomly broken
    depending on what values lands in sa_restorer.

Comment 3 Florian Weimer 2018-12-19 17:49:48 UTC
Also needs this commit:

commit 4d76d3e59d31aa690f148fc0c95cc0c581aed3e8
Author: Florian Weimer <fweimer@redhat.com>
Date:   Thu Mar 29 11:42:24 2018 +0200

    Linux i386: tst-bz21269 triggers SIGBUS on some kernels
    
    In addition to SIGSEGV and SIGILL, SIGBUS is also a possible signal
    generated by the kernel.

The upstream test needs some porting to glibc 2.17 and GCC 4.8.

Comment 6 Sergey Kolosov 2019-06-06 14:34:05 UTC
Verified with mock on i686 by misc/tst-bz21269

Comment 8 errata-xmlrpc 2019-08-06 12:48:58 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:2118


Note You need to log in before you can comment on or make changes to this bug.