diff options
author | tedu <> | 2015-10-15 02:23:06 +0000 |
---|---|---|
committer | tedu <> | 2015-10-15 02:23:06 +0000 |
commit | e8e64fa6046f4de6e0afa0bcfaf08478e7afaafe (patch) | |
tree | 934c093a152e6768abefcd1f296c6737092ca387 | |
parent | 5f6c5172519e406f4f71454e5fca995d45e370c9 (diff) | |
download | openbsd-OPENBSD_5_6.tar.gz openbsd-OPENBSD_5_6.tar.bz2 openbsd-OPENBSD_5_6.zip |
pull up fixes for leak and overrunlibressl-v2.0.6OPENBSD_5_6
-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 | ||