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