diff options
author | jsg <> | 2015-02-12 06:04:24 +0000 |
---|---|---|
committer | jsg <> | 2015-02-12 06:04:24 +0000 |
commit | 557a46ad4a6c1681d535c9869fd4bd95df7e07e7 (patch) | |
tree | 04429d37c529f4396efce10413190cf2eb072f9f | |
parent | aec39f743e0555328b51acbc6a5832a65827c0c6 (diff) | |
download | openbsd-557a46ad4a6c1681d535c9869fd4bd95df7e07e7.tar.gz openbsd-557a46ad4a6c1681d535c9869fd4bd95df7e07e7.tar.bz2 openbsd-557a46ad4a6c1681d535c9869fd4bd95df7e07e7.zip |
prevent a crash with openssl asn1parse -genstr FORMAT
aka ASN1_generate_nconf("FORMAT", NULL)
ok krw@ beck@ jsing@
-rw-r--r-- | src/lib/libcrypto/asn1/asn1_gen.c | 6 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/asn1_gen.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/libcrypto/asn1/asn1_gen.c b/src/lib/libcrypto/asn1/asn1_gen.c index 97be43a03a..384088308f 100644 --- a/src/lib/libcrypto/asn1/asn1_gen.c +++ b/src/lib/libcrypto/asn1/asn1_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: asn1_gen.c,v 1.12 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: asn1_gen.c,v 1.13 2015/02/12 06:04:24 jsg Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2002. | 3 | * project 2002. |
4 | */ | 4 | */ |
@@ -348,6 +348,10 @@ asn1_cb(const char *elem, int len, void *bitstr) | |||
348 | break; | 348 | break; |
349 | 349 | ||
350 | case ASN1_GEN_FLAG_FORMAT: | 350 | case ASN1_GEN_FLAG_FORMAT: |
351 | if (vstart == NULL) { | ||
352 | ASN1err(ASN1_F_ASN1_CB, ASN1_R_ILLEGAL_FORMAT); | ||
353 | return -1; | ||
354 | } | ||
351 | if (!strncmp(vstart, "ASCII", 5)) | 355 | if (!strncmp(vstart, "ASCII", 5)) |
352 | arg->format = ASN1_GEN_FORMAT_ASCII; | 356 | arg->format = ASN1_GEN_FORMAT_ASCII; |
353 | else if (!strncmp(vstart, "UTF8", 4)) | 357 | else if (!strncmp(vstart, "UTF8", 4)) |
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_gen.c b/src/lib/libssl/src/crypto/asn1/asn1_gen.c index 97be43a03a..384088308f 100644 --- a/src/lib/libssl/src/crypto/asn1/asn1_gen.c +++ b/src/lib/libssl/src/crypto/asn1/asn1_gen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: asn1_gen.c,v 1.12 2014/07/11 08:44:47 jsing Exp $ */ | 1 | /* $OpenBSD: asn1_gen.c,v 1.13 2015/02/12 06:04:24 jsg Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2002. | 3 | * project 2002. |
4 | */ | 4 | */ |
@@ -348,6 +348,10 @@ asn1_cb(const char *elem, int len, void *bitstr) | |||
348 | break; | 348 | break; |
349 | 349 | ||
350 | case ASN1_GEN_FLAG_FORMAT: | 350 | case ASN1_GEN_FLAG_FORMAT: |
351 | if (vstart == NULL) { | ||
352 | ASN1err(ASN1_F_ASN1_CB, ASN1_R_ILLEGAL_FORMAT); | ||
353 | return -1; | ||
354 | } | ||
351 | if (!strncmp(vstart, "ASCII", 5)) | 355 | if (!strncmp(vstart, "ASCII", 5)) |
352 | arg->format = ASN1_GEN_FORMAT_ASCII; | 356 | arg->format = ASN1_GEN_FORMAT_ASCII; |
353 | else if (!strncmp(vstart, "UTF8", 4)) | 357 | else if (!strncmp(vstart, "UTF8", 4)) |