[openssl-dev] [openssl.org #3931] OpenSSL 1.0.2(c, d) hangs on Sun T3 in OPENSSL_cpuid_setup()

Misaki.Miyashita misaki.miyashita at oracle.com
Thu Jul 9 23:15:32 UTC 2015


Hi Rick,

Can you run the truss(1) command when you run "openssl version" as follows?

i.e.
% truss -lf -u libcrypto:: -u libpkcs11:: -o /tmp/truss.out openssl version

The output will tell you more information about the function calls made 
by the openssl(1) application.

Thank you,

-- misaki

On 07/09/15 16:34, Puckett, Rick via RT wrote:
> Request: Bug Report
>
> Hello,
>
> I recently compiled OpenSSL 1.0.2(c,d) for Solaris 5.10 using GCC 4.8.2 on an UltraSPARC 45 and our group tested it on several different types of other systems (V245, T4, T3, etc...) and it runs as expected on all systems except the T3 where it hangs - even for a simple call like "openssl version".  The process continues normally when sent either a SIGBUS or SIGILL.
>
> I believe I've tracked it down to the function "OPENSSL_cpuid_setup" in the file "crypto/sparcv9cap.c" after the initial sigaction calls to set the signal handlers for SIGILL and SIGBUS and before the trailing sigaction calls to reset the handlers for SIGILL and SIGBUS.  There's a partial dtrace listing below, generated by my colleague Carolyn, with the last output lines showing the sigaction calls for SIGILL then SIGBUS (the trailing sigaction calls are in the reverse order in the code).
>
> The "OPENSSL_cpuid_setup" function supports reading the environment variable "OPENSSL_sparcv9cap" to skip further processing and setting this variable (to anything) prevents the process from hanging, so I'm also encouraged that the issue resides within this function, but am, obviously, hesitant to rely on this as an operational solution ...
>
> Is there any other information I can provide you and/or anything I can do on my side to investigate and resolve this.
>
> Thank you,
> - Rick
>
>
> 4503:   lwp_sigmask(SIG_SETMASK, 0xFFBFF827, 0x0000FFF7) = 0xFFBFFEFF [0x0000FFFF]
>
> 4503:   sigaction(SIGILL, 0xFFBFEC10, 0xFFBFECF0)       = 0
>
> 4503:       new: hand = 0xFEF4F824 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0000
>
> 4503:       old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
>
> 4503:   sigaction(SIGBUS, 0xFFBFEC10, 0xFFBFED10)       = 0
>
> 4503:       new: hand = 0xFEF4F824 mask = 0xFFBFFEFF 0x0000FFFF 0 0 flags = 0x0000
>
> 4503:       old: hand = 0x00000000 mask = 0 0 0 0 flags = 0x0000
>
>
>
>
>
> _______________________________________________
> openssl-bugs-mod mailing list
> openssl-bugs-mod at openssl.org
> https://mta.openssl.org/mailman/listinfo/openssl-bugs-mod
>
>
> _______________________________________________
> openssl-dev mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev


-- 
Oracle Solaris Security - Austin, TX
Principal Software Engineer



More information about the openssl-dev mailing list