diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/asn1/x_name.c | 14 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/x_name.c | 14 |
2 files changed, 16 insertions, 12 deletions
diff --git a/src/lib/libcrypto/asn1/x_name.c b/src/lib/libcrypto/asn1/x_name.c index 910110505d..c69c35534d 100644 --- a/src/lib/libcrypto/asn1/x_name.c +++ b/src/lib/libcrypto/asn1/x_name.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x_name.c,v 1.26 2015/02/11 04:00:39 jsing Exp $ */ | 1 | /* $OpenBSD: x_name.c,v 1.27 2015/02/14 15:16:59 miod 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 | * |
@@ -422,7 +422,7 @@ x509_name_canon(X509_NAME *a) | |||
422 | STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL; | 422 | STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL; |
423 | STACK_OF(X509_NAME_ENTRY) *entries = NULL; | 423 | STACK_OF(X509_NAME_ENTRY) *entries = NULL; |
424 | X509_NAME_ENTRY *entry, *tmpentry = NULL; | 424 | X509_NAME_ENTRY *entry, *tmpentry = NULL; |
425 | int i, set = -1, ret = 0; | 425 | int i, len, set = -1, ret = 0; |
426 | 426 | ||
427 | if (a->canon_enc) { | 427 | if (a->canon_enc) { |
428 | free(a->canon_enc); | 428 | free(a->canon_enc); |
@@ -456,16 +456,18 @@ x509_name_canon(X509_NAME *a) | |||
456 | } | 456 | } |
457 | 457 | ||
458 | /* Finally generate encoding */ | 458 | /* Finally generate encoding */ |
459 | a->canon_enclen = i2d_name_canon(intname, NULL); | 459 | len = i2d_name_canon(intname, NULL); |
460 | p = malloc(a->canon_enclen); | 460 | if (len < 0) |
461 | if (!p) | 461 | goto err; |
462 | p = malloc(len); | ||
463 | if (p == NULL) | ||
462 | goto err; | 464 | goto err; |
463 | a->canon_enc = p; | 465 | a->canon_enc = p; |
466 | a->canon_enclen = len; | ||
464 | i2d_name_canon(intname, &p); | 467 | i2d_name_canon(intname, &p); |
465 | ret = 1; | 468 | ret = 1; |
466 | 469 | ||
467 | err: | 470 | err: |
468 | |||
469 | if (tmpentry) | 471 | if (tmpentry) |
470 | X509_NAME_ENTRY_free(tmpentry); | 472 | X509_NAME_ENTRY_free(tmpentry); |
471 | if (intname) | 473 | if (intname) |
diff --git a/src/lib/libssl/src/crypto/asn1/x_name.c b/src/lib/libssl/src/crypto/asn1/x_name.c index 910110505d..c69c35534d 100644 --- a/src/lib/libssl/src/crypto/asn1/x_name.c +++ b/src/lib/libssl/src/crypto/asn1/x_name.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x_name.c,v 1.26 2015/02/11 04:00:39 jsing Exp $ */ | 1 | /* $OpenBSD: x_name.c,v 1.27 2015/02/14 15:16:59 miod 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 | * |
@@ -422,7 +422,7 @@ x509_name_canon(X509_NAME *a) | |||
422 | STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL; | 422 | STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL; |
423 | STACK_OF(X509_NAME_ENTRY) *entries = NULL; | 423 | STACK_OF(X509_NAME_ENTRY) *entries = NULL; |
424 | X509_NAME_ENTRY *entry, *tmpentry = NULL; | 424 | X509_NAME_ENTRY *entry, *tmpentry = NULL; |
425 | int i, set = -1, ret = 0; | 425 | int i, len, set = -1, ret = 0; |
426 | 426 | ||
427 | if (a->canon_enc) { | 427 | if (a->canon_enc) { |
428 | free(a->canon_enc); | 428 | free(a->canon_enc); |
@@ -456,16 +456,18 @@ x509_name_canon(X509_NAME *a) | |||
456 | } | 456 | } |
457 | 457 | ||
458 | /* Finally generate encoding */ | 458 | /* Finally generate encoding */ |
459 | a->canon_enclen = i2d_name_canon(intname, NULL); | 459 | len = i2d_name_canon(intname, NULL); |
460 | p = malloc(a->canon_enclen); | 460 | if (len < 0) |
461 | if (!p) | 461 | goto err; |
462 | p = malloc(len); | ||
463 | if (p == NULL) | ||
462 | goto err; | 464 | goto err; |
463 | a->canon_enc = p; | 465 | a->canon_enc = p; |
466 | a->canon_enclen = len; | ||
464 | i2d_name_canon(intname, &p); | 467 | i2d_name_canon(intname, &p); |
465 | ret = 1; | 468 | ret = 1; |
466 | 469 | ||
467 | err: | 470 | err: |
468 | |||
469 | if (tmpentry) | 471 | if (tmpentry) |
470 | X509_NAME_ENTRY_free(tmpentry); | 472 | X509_NAME_ENTRY_free(tmpentry); |
471 | if (intname) | 473 | if (intname) |