From 2fb601b85087d65dbda690e58164efc417c3399a Mon Sep 17 00:00:00 2001 From: jsing <> Date: Mon, 15 Apr 2019 17:46:02 +0000 Subject: Avoid signed integer overflow. Fixes oss-fuzz issue #13843. ok tb@ --- src/lib/libcrypto/asn1/x_long.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lib') 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 @@ -/* $OpenBSD: x_long.c,v 1.14 2019/04/01 15:48:50 jsing Exp $ */ +/* $OpenBSD: x_long.c,v 1.15 2019/04/15 17:46:02 jsing Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 2000. */ @@ -195,8 +195,8 @@ long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, } ltmp = (long)utmp; if (neg) { - ltmp++; ltmp = -ltmp; + ltmp--; } if (ltmp == it->size) { ASN1error(ASN1_R_INTEGER_TOO_LARGE_FOR_LONG); -- cgit v1.2.3-55-g6feb