summaryrefslogtreecommitdiff
path: root/lib/libssl
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2015-09-13 15:59:30 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2015-09-13 15:59:30 +0000
commit4f77ae4cfe322baf1cc29cca13cf217f9a3aa50f (patch)
tree8d167b098fca6046ee1630935a1422a4108050fc /lib/libssl
parent9fe2636e7efff33633e5a60d2bc9d0087253e1fa (diff)
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')
-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';