diff options
| author | jsg <> | 2015-02-12 06:04:24 +0000 | 
|---|---|---|
| committer | jsg <> | 2015-02-12 06:04:24 +0000 | 
| commit | 0a89699049a6c09c89d27d27e4c02b4df2699998 (patch) | |
| tree | 04429d37c529f4396efce10413190cf2eb072f9f /src | |
| parent | 9b148b465f71b30a6121b55dd176f1c3ebf5b4bb (diff) | |
| download | openbsd-0a89699049a6c09c89d27d27e4c02b4df2699998.tar.gz openbsd-0a89699049a6c09c89d27d27e4c02b4df2699998.tar.bz2 openbsd-0a89699049a6c09c89d27d27e4c02b4df2699998.zip | |
prevent a crash with openssl asn1parse -genstr FORMAT
aka ASN1_generate_nconf("FORMAT", NULL)
ok krw@ beck@ jsing@
Diffstat (limited to 'src')
| -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)) | 
