43 lines
1.1 KiB
Diff
43 lines
1.1 KiB
Diff
From e11072908742e96a1067bb1b9609bfc27ab05835 Mon Sep 17 00:00:00 2001
|
|
From: Tomas Mraz <tmraz@fedoraproject.org>
|
|
Date: Tue, 19 May 2020 10:51:19 +0200
|
|
Subject: [PATCH 059/217] Cast the unsigned char to unsigned int before
|
|
shifting left
|
|
|
|
This is needed to avoid automatic promotion to signed int.
|
|
|
|
Fixes #11853
|
|
|
|
[extended tests]
|
|
|
|
Reviewed-by: Richard Levitte <levitte@openssl.org>
|
|
(Merged from https://github.com/openssl/openssl/pull/11857)
|
|
|
|
(cherry picked from commit cbeb0bfa961412eebfbdf1e72900f05527e81e15)
|
|
---
|
|
crypto/pem/pvkfmt.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/crypto/pem/pvkfmt.c b/crypto/pem/pvkfmt.c
|
|
index 46ed2ec..e6156df 100644
|
|
--- a/crypto/pem/pvkfmt.c
|
|
+++ b/crypto/pem/pvkfmt.c
|
|
@@ -29,10 +29,10 @@ static unsigned int read_ledword(const unsigned char **in)
|
|
{
|
|
const unsigned char *p = *in;
|
|
unsigned int ret;
|
|
- ret = *p++;
|
|
- ret |= (*p++ << 8);
|
|
- ret |= (*p++ << 16);
|
|
- ret |= (*p++ << 24);
|
|
+ ret = (unsigned int)*p++;
|
|
+ ret |= (unsigned int)*p++ << 8;
|
|
+ ret |= (unsigned int)*p++ << 16;
|
|
+ ret |= (unsigned int)*p++ << 24;
|
|
*in = p;
|
|
return ret;
|
|
}
|
|
--
|
|
1.8.3.1
|
|
|