Commit a48cd0c5 authored by Dmitry Belyavskiy's avatar Dmitry Belyavskiy Committed by Pauli
Browse files

Avoid NULL pointer dereference. Fixes #9043.



Reviewed-by: default avatarPaul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9059)

(cherry picked from commit 9fd6f7d1cd2a3c8e2bc69dcb8bde8406eb6c2623)
parent 7b031c20
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -881,9 +881,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) {
+1 −0
Original line number Diff line number Diff line
@@ -3011,6 +3011,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
+4 −0
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -123,6 +123,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"},
+1 −0
Original line number Diff line number Diff line
@@ -97,6 +97,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