From 8fe7e4af1deb4047204d1a997cdc4a3c36010372 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Sat, 20 Apr 2019 11:13:15 +0000 Subject: Avoid undefined behaviour that results from negating a signed long with minimum value. Fixes oss-fuzz #14354. ok beck@ bcook@ tb@ --- src/lib/libcrypto/asn1/x_long.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lib/libcrypto/asn1/x_long.c') diff --git a/src/lib/libcrypto/asn1/x_long.c b/src/lib/libcrypto/asn1/x_long.c index 8b11f14217..ff72338cc0 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.15 2019/04/15 17:46:02 jsing Exp $ */ +/* $OpenBSD: x_long.c,v 1.16 2019/04/20 11:13:15 jsing Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 2000. */ @@ -142,7 +142,7 @@ long_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, * octet is set. */ if (ltmp < 0) - utmp = -ltmp - 1; + utmp = -(ltmp + 1); else utmp = ltmp; clen = BN_num_bits_word(utmp); -- cgit v1.2.3-55-g6feb