From d82c27589b5f9e9128f1ae9fce89fadd03c1c229 Mon Sep 17 00:00:00 2001 From: Emilia Kasper Date: Wed, 11 May 2016 22:41:29 +0200 Subject: [PATCH] Appease ubsan ERR_LIB_USER has value 128, and shifting into the sign bit upsets the shift sanitizer. Reviewed-by: Rich Salz --- include/openssl/err.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) -- 2.25.1