diff options
author | jsing <> | 2019-04-15 17:46:02 +0000 |
---|---|---|
committer | jsing <> | 2019-04-15 17:46:02 +0000 |
commit | 2fb601b85087d65dbda690e58164efc417c3399a (patch) | |
tree | 4cd5c99b1d3b8f2d2ad686e4faf8389e9933b159 /src | |
parent | 0da78a02ddaa683f68a377229a0edbcda97af8eb (diff) | |
download | openbsd-2fb601b85087d65dbda690e58164efc417c3399a.tar.gz openbsd-2fb601b85087d65dbda690e58164efc417c3399a.tar.bz2 openbsd-2fb601b85087d65dbda690e58164efc417c3399a.zip |
Avoid signed integer overflow.
Fixes oss-fuzz issue #13843.
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/asn1/x_long.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libcrypto/asn1/x_long.c b/src/lib/libcrypto/asn1/x_long.c index 61685c31a3..8b11f14217 100644 --- a/src/lib/libcrypto/asn1/x_long.c +++ b/src/lib/libcrypto/asn1/x_long.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x_long.c,v 1.14 2019/04/01 15:48:50 jsing Exp $ */ | 1 | /* $OpenBSD: x_long.c,v 1.15 2019/04/15 17:46:02 jsing 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 2000. | 3 | * project 2000. |
4 | */ | 4 | */ |
@@ -195,8 +195,8 @@ long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, | |||
195 | } | 195 | } |
196 | ltmp = (long)utmp; | 196 | ltmp = (long)utmp; |
197 | if (neg) { | 197 | if (neg) { |
198 | ltmp++; | ||
199 | ltmp = -ltmp; | 198 | ltmp = -ltmp; |
199 | ltmp--; | ||
200 | } | 200 | } |
201 | if (ltmp == it->size) { | 201 | if (ltmp == it->size) { |
202 | ASN1error(ASN1_R_INTEGER_TOO_LARGE_FOR_LONG); | 202 | ASN1error(ASN1_R_INTEGER_TOO_LARGE_FOR_LONG); |