Package: libnss3
Version: 2:3.32-2
Severity: important

Even after the latest change, libnss3 on i386 still requires SSE2 to
run, because freebl's rijndael.c and gcm.c are still compiled with
-mclmul and -maes, which imply -msse2, and since these files contain
the software fallbacks, the generated code for fallbacks still uses
SSE2, which results in SIGILL on Pentium III and earlier.

The solution would be to use __attribute__((target)) for the functions
that need CLMUL and/or AES intrinsics instead of passing -mclmul and
-maes.

Top of stack after receiving SIGILL trying to run Firefox:

#0  0x9f991270 in gcm_HashMult_sftw32 (ghash=0x9f686e90,
buf=<optimized out>, count=1) at gcm.c:219
#1  0x9f990e0a in gcmHash_Sync (ghash=ghash@entry=0x9f686e90) at gcm.c:463
#2  0x9f991d46 in gcmHash_Reset (ghash=0x9f686e90, AAD=0xaa9057cf "",
AADLen=13) at gcm.c:552

Reply via email to