summaryrefslogtreecommitdiffstats
path: root/lib/libssl/src
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2015-09-13 15:59:29 +0000
committerderaadt <deraadt@openbsd.org>2015-09-13 15:59:29 +0000
commit3907a78d04fac7a5abfefe65bc75764b3f33ea09 (patch)
treee579ec36546be8a85c4fe4e90e044bf98b2b8194 /lib/libssl/src
parentMore FNDELAY/FIONBIO --> SOCK_NONBLOCK conversions (diff)
downloadwireguard-openbsd-3907a78d04fac7a5abfefe65bc75764b3f33ea09.tar.xz
wireguard-openbsd-3907a78d04fac7a5abfefe65bc75764b3f33ea09.zip
BN does support negative-zero -- BN_print() sets the standard here.
BN_bn2hex() had a 1-byte overflow when creating "-0\0". Reported to me a while back by unknown person -- did not have enough experience to push this through then. advice from jsing, ok miod
Diffstat (limited to 'lib/libssl/src')
-rw-r--r--lib/libssl/src/crypto/bn/bn_print.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libssl/src/crypto/bn/bn_print.c b/lib/libssl/src/crypto/bn/bn_print.c
index 4920705a5b7..6b9f82caafc 100644
--- a/lib/libssl/src/crypto/bn/bn_print.c
+++ b/lib/libssl/src/crypto/bn/bn_print.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_print.c,v 1.23 2014/07/12 16:03:36 miod Exp $ */
+/* $OpenBSD: bn_print.c,v 1.24 2015/09/13 15:59:29 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -77,13 +77,13 @@ BN_bn2hex(const BIGNUM *a)
char *buf;
char *p;
- buf = malloc(a->top * BN_BYTES * 2 + 2);
+ buf = malloc(BN_is_negative(a) + a->top * BN_BYTES * 2 + 2);
if (buf == NULL) {
BNerr(BN_F_BN_BN2HEX, ERR_R_MALLOC_FAILURE);
goto err;
}
p = buf;
- if (a->neg)
+ if (BN_is_negative(a))
*(p++) = '-';
if (BN_is_zero(a))
*(p++) = '0';