Avoid NULL pointer dereference. Fixes #9043.
Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9059)
This commit is contained in:
parent
b97a28b19d
commit
9fd6f7d1cd
5 changed files with 20 additions and 2 deletions
14
apps/req.c
14
apps/req.c
|
@ -933,9 +933,19 @@ int req_main(int argc, char **argv)
|
|||
|
||||
if (text) {
|
||||
if (x509)
|
||||
X509_print_ex(out, x509ss, get_nameopt(), reqflag);
|
||||
ret = X509_print_ex(out, x509ss, get_nameopt(), reqflag);
|
||||
else
|
||||
X509_REQ_print_ex(out, req, get_nameopt(), reqflag);
|
||||
ret = X509_REQ_print_ex(out, req, get_nameopt(), reqflag);
|
||||
|
||||
if (ret == 0) {
|
||||
if (x509)
|
||||
BIO_printf(bio_err, "Error printing certificate\n");
|
||||
else
|
||||
BIO_printf(bio_err, "Error printing certificate request\n");
|
||||
|
||||
ERR_print_errors(bio_err);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
if (subject) {
|
||||
|
|
|
@ -3221,6 +3221,7 @@ X509_R_CERT_ALREADY_IN_HASH_TABLE:101:cert already in hash table
|
|||
X509_R_CRL_ALREADY_DELTA:127:crl already delta
|
||||
X509_R_CRL_VERIFY_FAILURE:131:crl verify failure
|
||||
X509_R_IDP_MISMATCH:128:idp mismatch
|
||||
X509_R_INVALID_ATTRIBUTES:138:invalid attributes
|
||||
X509_R_INVALID_DIRECTORY:113:invalid directory
|
||||
X509_R_INVALID_FIELD_NAME:119:invalid field name
|
||||
X509_R_INVALID_TRUST:123:invalid trust
|
||||
|
|
|
@ -127,6 +127,10 @@ int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflags,
|
|||
if ((j = i2a_ASN1_OBJECT(bp, aobj)) > 0) {
|
||||
ii = 0;
|
||||
count = X509_ATTRIBUTE_count(a);
|
||||
if (count == 0) {
|
||||
X509err(X509_F_X509_REQ_PRINT_EX, X509_R_INVALID_ATTRIBUTES);
|
||||
return 0;
|
||||
}
|
||||
get_next:
|
||||
at = X509_ATTRIBUTE_get0_type(a, ii);
|
||||
type = at->type;
|
||||
|
|
|
@ -129,6 +129,8 @@ static const ERR_STRING_DATA X509_str_reasons[] = {
|
|||
{ERR_PACK(ERR_LIB_X509, 0, X509_R_CRL_VERIFY_FAILURE),
|
||||
"crl verify failure"},
|
||||
{ERR_PACK(ERR_LIB_X509, 0, X509_R_IDP_MISMATCH), "idp mismatch"},
|
||||
{ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_ATTRIBUTES),
|
||||
"invalid attributes"},
|
||||
{ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_DIRECTORY), "invalid directory"},
|
||||
{ERR_PACK(ERR_LIB_X509, 0, X509_R_INVALID_FIELD_NAME),
|
||||
"invalid field name"},
|
||||
|
|
|
@ -102,6 +102,7 @@ int ERR_load_X509_strings(void);
|
|||
# define X509_R_CRL_ALREADY_DELTA 127
|
||||
# define X509_R_CRL_VERIFY_FAILURE 131
|
||||
# define X509_R_IDP_MISMATCH 128
|
||||
# define X509_R_INVALID_ATTRIBUTES 138
|
||||
# define X509_R_INVALID_DIRECTORY 113
|
||||
# define X509_R_INVALID_FIELD_NAME 119
|
||||
# define X509_R_INVALID_TRUST 123
|
||||
|
|
Loading…
Reference in a new issue