diff options
| author | jsing <> | 2019-04-15 17:46:02 +0000 |
|---|---|---|
| committer | jsing <> | 2019-04-15 17:46:02 +0000 |
| commit | 59ffb61915a18262d2dfa3ff8e3cff60f31fc054 (patch) | |
| tree | 4cd5c99b1d3b8f2d2ad686e4faf8389e9933b159 /src | |
| parent | 43d312539a65f8db03988a53b94f1e6aa6e40f3c (diff) | |
| download | openbsd-59ffb61915a18262d2dfa3ff8e3cff60f31fc054.tar.gz openbsd-59ffb61915a18262d2dfa3ff8e3cff60f31fc054.tar.bz2 openbsd-59ffb61915a18262d2dfa3ff8e3cff60f31fc054.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); |
