diff options
| -rw-r--r-- | src/lib/libssl/src/crypto/objects/obj_dat.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/lib/libssl/src/crypto/objects/obj_dat.c b/src/lib/libssl/src/crypto/objects/obj_dat.c index 15c298e333..2b695fea72 100644 --- a/src/lib/libssl/src/crypto/objects/obj_dat.c +++ b/src/lib/libssl/src/crypto/objects/obj_dat.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: obj_dat.c,v 1.31 2014/08/08 04:53:43 guenther Exp $ */ | 1 | /* $OpenBSD: obj_dat.c,v 1.31.2.1 2015/10/15 02:23:05 tedu Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -491,7 +491,6 @@ OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) | |||
| 491 | { | 491 | { |
| 492 | int i, ret = 0, len, nid, first = 1, use_bn; | 492 | int i, ret = 0, len, nid, first = 1, use_bn; |
| 493 | BIGNUM *bl = NULL; | 493 | BIGNUM *bl = NULL; |
| 494 | char *bndec = NULL; | ||
| 495 | unsigned long l; | 494 | unsigned long l; |
| 496 | const unsigned char *p; | 495 | const unsigned char *p; |
| 497 | 496 | ||
| @@ -567,14 +566,16 @@ OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) | |||
| 567 | } | 566 | } |
| 568 | 567 | ||
| 569 | if (use_bn) { | 568 | if (use_bn) { |
| 569 | char *bndec; | ||
| 570 | |||
| 570 | bndec = BN_bn2dec(bl); | 571 | bndec = BN_bn2dec(bl); |
| 571 | if (!bndec) | 572 | if (!bndec) |
| 572 | goto err; | 573 | goto err; |
| 573 | i = snprintf(buf, buf_len, ".%s", bndec); | 574 | i = snprintf(buf, buf_len, ".%s", bndec); |
| 575 | free(bndec); | ||
| 574 | if (i == -1) | 576 | if (i == -1) |
| 575 | goto err; | 577 | goto err; |
| 576 | if (i >= buf_len) { | 578 | if (i >= buf_len) { |
| 577 | buf += buf_len; | ||
| 578 | buf_len = 0; | 579 | buf_len = 0; |
| 579 | } else { | 580 | } else { |
| 580 | buf += i; | 581 | buf += i; |
| @@ -586,7 +587,6 @@ OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) | |||
| 586 | if (i == -1) | 587 | if (i == -1) |
| 587 | goto err; | 588 | goto err; |
| 588 | if (i >= buf_len) { | 589 | if (i >= buf_len) { |
| 589 | buf += buf_len; | ||
| 590 | buf_len = 0; | 590 | buf_len = 0; |
| 591 | } else { | 591 | } else { |
| 592 | buf += i; | 592 | buf += i; |
| @@ -598,13 +598,11 @@ OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) | |||
| 598 | } | 598 | } |
| 599 | 599 | ||
| 600 | out: | 600 | out: |
| 601 | free(bndec); | ||
| 602 | BN_free(bl); | 601 | BN_free(bl); |
| 603 | return ret; | 602 | return ret; |
| 604 | 603 | ||
| 605 | err: | 604 | err: |
| 606 | ret = 0; | 605 | ret = 0; |
| 607 | buf[0] = '\0'; | ||
| 608 | goto out; | 606 | goto out; |
| 609 | } | 607 | } |
| 610 | 608 | ||
