mirror of
https://github.com/openssl/openssl.git
synced 2024-12-15 06:01:37 +08:00
Fix possible UB in init_info_strings
"openssl version -c" may create undefined behavior in the shift: crypto/info.c:42:50: runtime error: left shift of 4275712515 by 32 places cannot be represented in type 'long long int' Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19668)
This commit is contained in:
parent
e64a169fc6
commit
ee17dcc7ff
@ -45,10 +45,10 @@ DEFINE_RUN_ONCE_STATIC(init_info_strings)
|
||||
|
||||
BIO_snprintf(ossl_cpu_info_str, sizeof(ossl_cpu_info_str),
|
||||
CPUINFO_PREFIX "OPENSSL_ia32cap=0x%llx:0x%llx",
|
||||
(long long)OPENSSL_ia32cap_P[0] |
|
||||
(long long)OPENSSL_ia32cap_P[1] << 32,
|
||||
(long long)OPENSSL_ia32cap_P[2] |
|
||||
(long long)OPENSSL_ia32cap_P[3] << 32);
|
||||
(unsigned long long)OPENSSL_ia32cap_P[0] |
|
||||
(unsigned long long)OPENSSL_ia32cap_P[1] << 32,
|
||||
(unsigned long long)OPENSSL_ia32cap_P[2] |
|
||||
(unsigned long long)OPENSSL_ia32cap_P[3] << 32);
|
||||
if ((env = getenv("OPENSSL_ia32cap")) != NULL)
|
||||
BIO_snprintf(ossl_cpu_info_str + strlen(ossl_cpu_info_str),
|
||||
sizeof(ossl_cpu_info_str) - strlen(ossl_cpu_info_str),
|
||||
|
Loading…
Reference in New Issue
Block a user