> All the users of siginmask() must ensure that sig < SIGRTMIN. sig_fatal() > doesn't and this is wrong: > > [ 211.406327] UBSAN: Undefined behaviour in kernel/signal.c:911:6 > [ 211.406365] shift exponent 32 is too large for 32-bit type 'long > unsigned int' > > the patch doesn't add the neccesary check to sig_fatal(), it moves the > check into siginmask() and updates other callers. > > Reported-by: Meelis Roos <mr...@linux.ee> > Signed-off-by: Oleg Nesterov <o...@redhat.com>
Tested on the same AthlonMP, on HP Proliant DL360G3 and PowerMac G4, successfully - system still works, warnings are gone. -- Meelis Roos (mr...@linux.ee)