summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortedu <>2015-10-15 02:23:06 +0000
committertedu <>2015-10-15 02:23:06 +0000
commite8e64fa6046f4de6e0afa0bcfaf08478e7afaafe (patch)
tree934c093a152e6768abefcd1f296c6737092ca387
parent5f6c5172519e406f4f71454e5fca995d45e370c9 (diff)
downloadopenbsd-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.c10
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
600out: 600out:
601 free(bndec);
602 BN_free(bl); 601 BN_free(bl);
603 return ret; 602 return ret;
604 603
605err: 604err:
606 ret = 0; 605 ret = 0;
607 buf[0] = '\0';
608 goto out; 606 goto out;
609} 607}
610 608