Bug 1579730

Summary: glibc: Fix i386 sigaction sa_restorer initialization
Product: Red Hat Enterprise Linux 7 Reporter: Florian Weimer <fweimer>
Component: glibcAssignee: Florian Weimer <fweimer>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: ashankar, codonell, dj, fweimer, mcermak, mnewsome, pfrankli, skolosov
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glibc-2.17-266.el7 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-08-06 12:48:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1643040    

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>
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>
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