From: Emilia Kasper Date: Wed, 11 May 2016 20:41:29 +0000 (+0200) Subject: Appease ubsan X-Git-Tag: OpenSSL_1_1_0-pre6~856 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d82c27589b5f9e9128f1ae9fce89fadd03c1c229;p=oweals%2Fopenssl.git Appease ubsan ERR_LIB_USER has value 128, and shifting into the sign bit upsets the shift sanitizer. Reviewed-by: Rich Salz --- diff --git a/include/openssl/err.h b/include/openssl/err.h index e41fdc3efe..ce3283ebd5 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -235,7 +235,7 @@ typedef struct err_state_st { # define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) # define ERR_PACK(l,f,r) \ - ( (((l) & 0x0FF) << 24L) | (((f) & 0xFFF) << 12L) | ((r) & 0xFFF) ) + ( ((unsigned int)((l) & 0x0FF) << 24L) | (((f) & 0xFFF) << 12L) | ((r) & 0xFFF) ) # define ERR_GET_LIB(l) (int)((((unsigned long)l)>>24L)&0xffL) # define ERR_GET_FUNC(l) (int)((((unsigned long)l)>>12L)&0xfffL) # define ERR_GET_REASON(l) (int)((l)&0xfffL)