diff options
author | 2015-09-13 15:59:29 +0000 | |
---|---|---|
committer | 2015-09-13 15:59:29 +0000 | |
commit | 3907a78d04fac7a5abfefe65bc75764b3f33ea09 (patch) | |
tree | e579ec36546be8a85c4fe4e90e044bf98b2b8194 /lib/libssl/src | |
parent | More FNDELAY/FIONBIO --> SOCK_NONBLOCK conversions (diff) | |
download | wireguard-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.c | 6 |
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'; |