summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormiod <>2015-07-16 02:18:58 +0000
committermiod <>2015-07-16 02:18:58 +0000
commit0f36cbbfbb33554482f86b90bbe673c9c4f917a3 (patch)
tree827008cb88ff12d6e0a6ae0c904cb4f8c93b2b3b /src
parent207ad0ebbc1371cabc99dd9599f264886bba4d1a (diff)
downloadopenbsd-0f36cbbfbb33554482f86b90bbe673c9c4f917a3.tar.gz
openbsd-0f36cbbfbb33554482f86b90bbe673c9c4f917a3.tar.bz2
openbsd-0f36cbbfbb33554482f86b90bbe673c9c4f917a3.zip
Explicitely cast a char into unsigned long before shifting it left by 24, for
this would promote it to int for the shift, and then cast to unsigned long, sign-extending it if sizeof(long) > sizeof(int). This was not a problem because the computed value was explicitely range checked afterwards, with an upper bound way smaller than 1U<<31, but it's better practice to cast correctly. ok beck@
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/asn1/a_mbstr.c4
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_mbstr.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libcrypto/asn1/a_mbstr.c b/src/lib/libcrypto/asn1/a_mbstr.c
index 9ce0a000fe..e715fe7348 100644
--- a/src/lib/libcrypto/asn1/a_mbstr.c
+++ b/src/lib/libcrypto/asn1/a_mbstr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_mbstr.c,v 1.21 2014/10/12 20:47:12 miod Exp $ */ 1/* $OpenBSD: a_mbstr.c,v 1.22 2015/07/16 02:18:58 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -288,7 +288,7 @@ traverse_string(const unsigned char *p, int len, int inform,
288 len -= 2; 288 len -= 2;
289 break; 289 break;
290 case MBSTRING_UNIV: 290 case MBSTRING_UNIV:
291 value = *p++ << 24; 291 value = (unsigned long)*p++ << 24;
292 value |= *p++ << 16; 292 value |= *p++ << 16;
293 value |= *p++ << 8; 293 value |= *p++ << 8;
294 value |= *p++; 294 value |= *p++;
diff --git a/src/lib/libssl/src/crypto/asn1/a_mbstr.c b/src/lib/libssl/src/crypto/asn1/a_mbstr.c
index 9ce0a000fe..e715fe7348 100644
--- a/src/lib/libssl/src/crypto/asn1/a_mbstr.c
+++ b/src/lib/libssl/src/crypto/asn1/a_mbstr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: a_mbstr.c,v 1.21 2014/10/12 20:47:12 miod Exp $ */ 1/* $OpenBSD: a_mbstr.c,v 1.22 2015/07/16 02:18:58 miod Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -288,7 +288,7 @@ traverse_string(const unsigned char *p, int len, int inform,
288 len -= 2; 288 len -= 2;
289 break; 289 break;
290 case MBSTRING_UNIV: 290 case MBSTRING_UNIV:
291 value = *p++ << 24; 291 value = (unsigned long)*p++ << 24;
292 value |= *p++ << 16; 292 value |= *p++ << 16;
293 value |= *p++ << 8; 293 value |= *p++ << 8;
294 value |= *p++; 294 value |= *p++;