apps/ca.c:1692: error: NULL_DEREFERENCE
  pointer `str` last assigned on line 1685 could be null and is dereferenced at line 1692, column 17.
Showing all 99 steps of the trace


apps/ca.c:1630:1: start of procedure do_body()
1628.   }
1629.   
1630. > static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
1631.                      const EVP_MD *dgst, STACK_OF(OPENSSL_STRING) *sigopts,
1632.                      STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial,

apps/ca.c:1639:5: 
1637.                      int default_op, int ext_copy, int selfsign)
1638.   {
1639. >     X509_NAME *name = NULL, *CAname = NULL, *subject = NULL, *dn_subject =
1640.           NULL;
1641.       ASN1_UTCTIME *tm, *tmptm;

apps/ca.c:1644:5: 
1642.       ASN1_STRING *str, *str2;
1643.       ASN1_OBJECT *obj;
1644. >     X509 *ret = NULL;
1645.       X509_CINF *ci;
1646.       X509_NAME_ENTRY *ne;

apps/ca.c:1649:5: 
1647.       X509_NAME_ENTRY *tne, *push;
1648.       EVP_PKEY *pktmp;
1649. >     int ok = -1, i, j, last, nid;
1650.       const char *p;
1651.       CONF_VALUE *cv;

apps/ca.c:1653:5: 
1651.       CONF_VALUE *cv;
1652.       OPENSSL_STRING row[DB_NUMBER];
1653. >     OPENSSL_STRING *irow = NULL;
1654.       OPENSSL_STRING *rrow = NULL;
1655.       char buf[25];

apps/ca.c:1654:5: 
1652.       OPENSSL_STRING row[DB_NUMBER];
1653.       OPENSSL_STRING *irow = NULL;
1654. >     OPENSSL_STRING *rrow = NULL;
1655.       char buf[25];
1656.   

apps/ca.c:1657:5: 
1655.       char buf[25];
1656.   
1657. >     tmptm = ASN1_UTCTIME_new();
1658.       if (tmptm == NULL) {
1659.           BIO_printf(bio_err, "malloc error\n");

crypto/asn1/tasn_typ.c:86:1: start of procedure ASN1_UTCTIME_new()
  84.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_IA5STRING)
  85.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_GENERALSTRING)
  86. > IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_UTCTIME)
  87.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_GENERALIZEDTIME)
  88.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_VISIBLESTRING)

crypto/asn1/tasn_typ.c:86:1: return from a call to ASN1_UTCTIME_new
  84.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_IA5STRING)
  85.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_GENERALSTRING)
  86. > IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_UTCTIME)
  87.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_GENERALIZEDTIME)
  88.   IMPLEMENT_ASN1_STRING_FUNCTIONS(ASN1_VISIBLESTRING)

apps/ca.c:1658:9: Taking false branch
1656.   
1657.       tmptm = ASN1_UTCTIME_new();
1658.       if (tmptm == NULL) {
                ^
1659.           BIO_printf(bio_err, "malloc error\n");
1660.           return (0);

apps/ca.c:1663:10: 
1661.       }
1662.   
1663. >     for (i = 0; i < DB_NUMBER; i++)
1664.           row[i] = NULL;
1665.   

apps/ca.c:1663:17: Loop condition is true. Entering loop body
1661.       }
1662.   
1663.       for (i = 0; i < DB_NUMBER; i++)
                        ^
1664.           row[i] = NULL;
1665.   

apps/ca.c:1664:9: 
1662.   
1663.       for (i = 0; i < DB_NUMBER; i++)
1664. >         row[i] = NULL;
1665.   
1666.       if (subj) {

apps/ca.c:1663:32: 
1661.       }
1662.   
1663. >     for (i = 0; i < DB_NUMBER; i++)
1664.           row[i] = NULL;
1665.   

apps/ca.c:1663:17: Loop condition is false. Leaving loop
1661.       }
1662.   
1663.       for (i = 0; i < DB_NUMBER; i++)
                        ^
1664.           row[i] = NULL;
1665.   

apps/ca.c:1666:9: Taking true branch
1664.           row[i] = NULL;
1665.   
1666.       if (subj) {
                ^
1667.           X509_NAME *n = parse_name(subj, chtype, multirdn);
1668.   

apps/ca.c:1667:9: Skipping parse_name(): empty list of specs
1665.   
1666.       if (subj) {
1667.           X509_NAME *n = parse_name(subj, chtype, multirdn);
                ^
1668.   
1669.           if (!n) {

apps/ca.c:1669:14: Taking false branch
1667.           X509_NAME *n = parse_name(subj, chtype, multirdn);
1668.   
1669.           if (!n) {
                     ^
1670.               ERR_print_errors(bio_err);
1671.               goto err;

apps/ca.c:1673:9: 
1671.               goto err;
1672.           }
1673. >         X509_REQ_set_subject_name(req, n);
1674.           req->req_info->enc.modified = 1;
1675.           X509_NAME_free(n);

crypto/x509/x509rset.c:73:1: start of procedure X509_REQ_set_subject_name()
  71.   }
  72.   
  73. > int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
  74.   {
  75.       if ((x == NULL) || (x->req_info == NULL))

crypto/x509/x509rset.c:75:10: Taking false branch
  73.   int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
  74.   {
  75.       if ((x == NULL) || (x->req_info == NULL))
                 ^
  76.           return (0);
  77.       return (X509_NAME_set(&x->req_info->subject, name));

crypto/x509/x509rset.c:75:25: Taking false branch
  73.   int X509_REQ_set_subject_name(X509_REQ *x, X509_NAME *name)
  74.   {
  75.       if ((x == NULL) || (x->req_info == NULL))
                                ^
  76.           return (0);
  77.       return (X509_NAME_set(&x->req_info->subject, name));

crypto/x509/x509rset.c:77:5: 
  75.       if ((x == NULL) || (x->req_info == NULL))
  76.           return (0);
  77. >     return (X509_NAME_set(&x->req_info->subject, name));
  78.   }
  79.   

crypto/x509/x_name.c:509:1: start of procedure X509_NAME_set()
    507.   }
    508.   
    509. > int X509_NAME_set(X509_NAME **xn, X509_NAME *name)
    510.   {
    511.       X509_NAME *in;

crypto/x509/x_name.c:513:10: Taking false branch
    511.       X509_NAME *in;
    512.   
    513.       if (!xn || !name)
                    ^
    514.           return (0);
    515.   

crypto/x509/x_name.c:513:17: Taking false branch
    511.       X509_NAME *in;
    512.   
    513.       if (!xn || !name)
                           ^
    514.           return (0);
    515.   

crypto/x509/x_name.c:516:9: Taking false branch
    514.           return (0);
    515.   
    516.       if (*xn != name) {
                   ^
    517.           in = X509_NAME_dup(name);
    518.           if (in != NULL) {

crypto/x509/x_name.c:523:13: Condition is true
    521.           }
    522.       }
    523.       return (*xn != NULL);
                       ^
    524.   }

crypto/x509/x_name.c:523:5: 
    521.           }
    522.       }
    523. >     return (*xn != NULL);
    524.   }

crypto/x509/x_name.c:524:1: return from a call to X509_NAME_set
    522.       }
    523.       return (*xn != NULL);
    524. > }

crypto/x509/x509rset.c:78:1: return from a call to X509_REQ_set_subject_name
  76.           return (0);
  77.       return (X509_NAME_set(&x->req_info->subject, name));
  78. > }
  79.   
  80.   int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey)

apps/ca.c:1674:9: 
1672.           }
1673.           X509_REQ_set_subject_name(req, n);
1674. >         req->req_info->enc.modified = 1;
1675.           X509_NAME_free(n);
1676.       }

apps/ca.c:1675:9: 
1673.           X509_REQ_set_subject_name(req, n);
1674.           req->req_info->enc.modified = 1;
1675. >         X509_NAME_free(n);
1676.       }
1677.   

crypto/x509/x_name.c:130:1: start of procedure X509_NAME_free()
  128.   IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff)
  129.   
  130. > IMPLEMENT_ASN1_FUNCTIONS(X509_NAME)
  131.   
  132.   IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME)

crypto/asn1/tasn_fre.c:68:1: start of procedure ASN1_item_free()
    66.   /* Free up an ASN1 structure */
    67.   
    68. > void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
    69.   {
    70.       ASN1_item_ex_free(&val, it);

crypto/asn1/tasn_fre.c:70:5: Skipping ASN1_item_ex_free(): empty list of specs
    68.   void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it)
    69.   {
    70.       ASN1_item_ex_free(&val, it);
              ^
    71.   }
    72.   

crypto/asn1/tasn_fre.c:71:1: return from a call to ASN1_item_free
    69.   {
    70.       ASN1_item_ex_free(&val, it);
    71. > }
    72.   
    73.   void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)

crypto/x509/x_name.c:130:1: return from a call to X509_NAME_free
  128.   IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff)
  129.   
  130. > IMPLEMENT_ASN1_FUNCTIONS(X509_NAME)
  131.   
  132.   IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME)

apps/ca.c:1678:9: Taking true branch
1676.       }
1677.   
1678.       if (default_op)
                ^
1679.           BIO_printf(bio_err,
1680.                      "The Subject's Distinguished Name is as follows\n");

apps/ca.c:1679:9: 
1677.   
1678.       if (default_op)
1679. >         BIO_printf(bio_err,
1680.                      "The Subject's Distinguished Name is as follows\n");
1681.   

crypto/bio/b_print.c:747:1: start of procedure BIO_printf()
  745.   /***************************************************************************/
  746.   
  747. > int BIO_printf(BIO *bio, const char *format, ...)
  748.   {
  749.       va_list args;

crypto/bio/b_print.c:752:5: 
  750.       int ret;
  751.   
  752. >     va_start(args, format);
  753.   
  754.       ret = BIO_vprintf(bio, format, args);

crypto/bio/b_print.c:754:5: Skipping BIO_vprintf(): empty list of specs
  752.       va_start(args, format);
  753.   
  754.       ret = BIO_vprintf(bio, format, args);
             ^
  755.   
  756.       va_end(args);

crypto/bio/b_print.c:756:5: 
  754.       ret = BIO_vprintf(bio, format, args);
  755.   
  756. >     va_end(args);
  757.       return (ret);
  758.   }

crypto/bio/b_print.c:757:5: 
  755.   
  756.       va_end(args);
  757. >     return (ret);
  758.   }
  759.   

crypto/bio/b_print.c:758:1: return from a call to BIO_printf
  756.       va_end(args);
  757.       return (ret);
  758. > }
  759.   
  760.   int BIO_vprintf(BIO *bio, const char *format, va_list args)

apps/ca.c:1682:5: 
1680.                      "The Subject's Distinguished Name is as follows\n");
1681.   
1682. >     name = X509_REQ_get_subject_name(req);
1683.       for (i = 0; i < X509_NAME_entry_count(name); i++) {
1684.           ne = X509_NAME_get_entry(name, i);

apps/ca.c:1683:10: 
1681.   
1682.       name = X509_REQ_get_subject_name(req);
1683. >     for (i = 0; i < X509_NAME_entry_count(name); i++) {
1684.           ne = X509_NAME_get_entry(name, i);
1685.           str = X509_NAME_ENTRY_get_data(ne);

apps/ca.c:1683:17: 
1681.   
1682.       name = X509_REQ_get_subject_name(req);
1683. >     for (i = 0; i < X509_NAME_entry_count(name); i++) {
1684.           ne = X509_NAME_get_entry(name, i);
1685.           str = X509_NAME_ENTRY_get_data(ne);

crypto/x509/x509name.c:96:1: start of procedure X509_NAME_entry_count()
  94.   }
  95.   
  96. > int X509_NAME_entry_count(X509_NAME *name)
  97.   {
  98.       if (name == NULL)

crypto/x509/x509name.c:98:9: Taking false branch
  96.   int X509_NAME_entry_count(X509_NAME *name)
  97.   {
  98.       if (name == NULL)
                 ^
  99.           return (0);
  100.       return (sk_X509_NAME_ENTRY_num(name->entries));

crypto/x509/x509name.c:100:13: Condition is true
  98.       if (name == NULL)
  99.           return (0);
  100.       return (sk_X509_NAME_ENTRY_num(name->entries));
                     ^
  101.   }
  102.   

crypto/x509/x509name.c:100:5: 
  98.       if (name == NULL)
  99.           return (0);
  100. >     return (sk_X509_NAME_ENTRY_num(name->entries));
  101.   }
  102.   

crypto/stack/stack.c:327:1: start of procedure sk_num()
    325.   }
    326.   
    327. > int sk_num(const _STACK *st)
    328.   {
    329.       if (st == NULL)

crypto/stack/stack.c:329:9: Taking false branch
    327.   int sk_num(const _STACK *st)
    328.   {
    329.       if (st == NULL)
                   ^
    330.           return -1;
    331.       return st->num;

crypto/stack/stack.c:331:5: 
    329.       if (st == NULL)
    330.           return -1;
    331. >     return st->num;
    332.   }
    333.   

crypto/stack/stack.c:332:1: return from a call to sk_num
    330.           return -1;
    331.       return st->num;
    332. > }
    333.   
    334.   void *sk_value(const _STACK *st, int i)

crypto/x509/x509name.c:101:1: return from a call to X509_NAME_entry_count
  99.           return (0);
  100.       return (sk_X509_NAME_ENTRY_num(name->entries));
  101. > }
  102.   
  103.   int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos)

apps/ca.c:1683:17: Loop condition is true. Entering loop body
1681.   
1682.       name = X509_REQ_get_subject_name(req);
1683.       for (i = 0; i < X509_NAME_entry_count(name); i++) {
                        ^
1684.           ne = X509_NAME_get_entry(name, i);
1685.           str = X509_NAME_ENTRY_get_data(ne);

apps/ca.c:1684:9: 
1682.       name = X509_REQ_get_subject_name(req);
1683.       for (i = 0; i < X509_NAME_entry_count(name); i++) {
1684. >         ne = X509_NAME_get_entry(name, i);
1685.           str = X509_NAME_ENTRY_get_data(ne);
1686.           obj = X509_NAME_ENTRY_get_object(ne);

crypto/x509/x509name.c:134:1: start of procedure X509_NAME_get_entry()
  132.   }
  133.   
  134. > X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc)
  135.   {
  136.       if (name == NULL || sk_X509_NAME_ENTRY_num(name->entries) <= loc

crypto/x509/x509name.c:136:9: Taking false branch
  134.   X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc)
  135.   {
  136.       if (name == NULL || sk_X509_NAME_ENTRY_num(name->entries) <= loc
                 ^
  137.           || loc < 0)
  138.           return (NULL);

crypto/x509/x509name.c:136:25: Condition is true
  134.   X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc)
  135.   {
  136.       if (name == NULL || sk_X509_NAME_ENTRY_num(name->entries) <= loc
                                 ^
  137.           || loc < 0)
  138.           return (NULL);

crypto/stack/stack.c:327:1: start of procedure sk_num()
    325.   }
    326.   
    327. > int sk_num(const _STACK *st)
    328.   {
    329.       if (st == NULL)

crypto/stack/stack.c:329:9: Taking false branch
    327.   int sk_num(const _STACK *st)
    328.   {
    329.       if (st == NULL)
                   ^
    330.           return -1;
    331.       return st->num;

crypto/stack/stack.c:331:5: 
    329.       if (st == NULL)
    330.           return -1;
    331. >     return st->num;
    332.   }
    333.   

crypto/stack/stack.c:332:1: return from a call to sk_num
    330.           return -1;
    331.       return st->num;
    332. > }
    333.   
    334.   void *sk_value(const _STACK *st, int i)

crypto/x509/x509name.c:136:25: Taking false branch
  134.   X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc)
  135.   {
  136.       if (name == NULL || sk_X509_NAME_ENTRY_num(name->entries) <= loc
                                 ^
  137.           || loc < 0)
  138.           return (NULL);

crypto/x509/x509name.c:137:12: Taking false branch
  135.   {
  136.       if (name == NULL || sk_X509_NAME_ENTRY_num(name->entries) <= loc
  137.           || loc < 0)
                    ^
  138.           return (NULL);
  139.       else

crypto/x509/x509name.c:140:17: Condition is true
  138.           return (NULL);
  139.       else
  140.           return (sk_X509_NAME_ENTRY_value(name->entries, loc));
                         ^
  141.   }
  142.   

crypto/x509/x509name.c:140:9: 
  138.           return (NULL);
  139.       else
  140. >         return (sk_X509_NAME_ENTRY_value(name->entries, loc));
  141.   }
  142.   

crypto/stack/stack.c:334:1: start of procedure sk_value()
    332.   }
    333.   
    334. > void *sk_value(const _STACK *st, int i)
    335.   {
    336.       if (!st || (i < 0) || (i >= st->num))

crypto/stack/stack.c:336:10: Taking false branch
    334.   void *sk_value(const _STACK *st, int i)
    335.   {
    336.       if (!st || (i < 0) || (i >= st->num))
                    ^
    337.           return NULL;
    338.       return st->data[i];

crypto/stack/stack.c:336:17: Taking false branch
    334.   void *sk_value(const _STACK *st, int i)
    335.   {
    336.       if (!st || (i < 0) || (i >= st->num))
                           ^
    337.           return NULL;
    338.       return st->data[i];

crypto/stack/stack.c:336:28: Taking false branch
    334.   void *sk_value(const _STACK *st, int i)
    335.   {
    336.       if (!st || (i < 0) || (i >= st->num))
                                      ^
    337.           return NULL;
    338.       return st->data[i];

crypto/stack/stack.c:338:5: 
    336.       if (!st || (i < 0) || (i >= st->num))
    337.           return NULL;
    338. >     return st->data[i];
    339.   }
    340.   

crypto/stack/stack.c:339:1: return from a call to sk_value
    337.           return NULL;
    338.       return st->data[i];
    339. > }
    340.   
    341.   void *sk_set(_STACK *st, int i, void *value)

crypto/x509/x509name.c:141:1: return from a call to X509_NAME_get_entry
  139.       else
  140.           return (sk_X509_NAME_ENTRY_value(name->entries, loc));
  141. > }
  142.   
  143.   X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc)

apps/ca.c:1685:9: 
1683.       for (i = 0; i < X509_NAME_entry_count(name); i++) {
1684.           ne = X509_NAME_get_entry(name, i);
1685. >         str = X509_NAME_ENTRY_get_data(ne);
1686.           obj = X509_NAME_ENTRY_get_object(ne);
1687.   

crypto/x509/x509name.c:393:1: start of procedure X509_NAME_ENTRY_get_data()
  391.   }
  392.   
  393. > ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)
  394.   {
  395.       if (ne == NULL)

crypto/x509/x509name.c:395:9: Taking true branch
  393.   ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)
  394.   {
  395.       if (ne == NULL)
                 ^
  396.           return (NULL);
  397.       return (ne->value);

crypto/x509/x509name.c:396:9: 
  394.   {
  395.       if (ne == NULL)
  396. >         return (NULL);
  397.       return (ne->value);
  398.   }

crypto/x509/x509name.c:398:1: return from a call to X509_NAME_ENTRY_get_data
  396.           return (NULL);
  397.       return (ne->value);
  398. > }
  399.   
  400.   int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)

apps/ca.c:1686:9: 
1684.           ne = X509_NAME_get_entry(name, i);
1685.           str = X509_NAME_ENTRY_get_data(ne);
1686. >         obj = X509_NAME_ENTRY_get_object(ne);
1687.   
1688.           if (msie_hack) {

crypto/x509/x509name.c:386:1: start of procedure X509_NAME_ENTRY_get_object()
  384.   }
  385.   
  386. > ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne)
  387.   {
  388.       if (ne == NULL)

crypto/x509/x509name.c:388:9: Taking true branch
  386.   ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne)
  387.   {
  388.       if (ne == NULL)
                 ^
  389.           return (NULL);
  390.       return (ne->object);

crypto/x509/x509name.c:389:9: 
  387.   {
  388.       if (ne == NULL)
  389. >         return (NULL);
  390.       return (ne->object);
  391.   }

crypto/x509/x509name.c:391:1: return from a call to X509_NAME_ENTRY_get_object
  389.           return (NULL);
  390.       return (ne->object);
  391. > }
  392.   
  393.   ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)

apps/ca.c:1688:13: Taking true branch
1686.           obj = X509_NAME_ENTRY_get_object(ne);
1687.   
1688.           if (msie_hack) {
                    ^
1689.               /* assume all type should be strings */
1690.               nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne));

apps/ca.c:1690:13: 
1688.           if (msie_hack) {
1689.               /* assume all type should be strings */
1690. >             nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne));
1691.   
1692.               if (str->type == V_ASN1_UNIVERSALSTRING)

crypto/x509/x509name.c:386:1: start of procedure X509_NAME_ENTRY_get_object()
  384.   }
  385.   
  386. > ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne)
  387.   {
  388.       if (ne == NULL)

crypto/x509/x509name.c:388:9: Taking true branch
  386.   ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne)
  387.   {
  388.       if (ne == NULL)
                 ^
  389.           return (NULL);
  390.       return (ne->object);

crypto/x509/x509name.c:389:9: 
  387.   {
  388.       if (ne == NULL)
  389. >         return (NULL);
  390.       return (ne->object);
  391.   }

crypto/x509/x509name.c:391:1: return from a call to X509_NAME_ENTRY_get_object
  389.           return (NULL);
  390.       return (ne->object);
  391. > }
  392.   
  393.   ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)

crypto/objects/obj_dat.c:396:1: start of procedure OBJ_obj2nid()
  394.   IMPLEMENT_OBJ_BSEARCH_CMP_FN(const ASN1_OBJECT *, unsigned int, obj);
  395.   
  396. > int OBJ_obj2nid(const ASN1_OBJECT *a)
  397.   {
  398.       const unsigned int *op;

crypto/objects/obj_dat.c:401:9: Taking true branch
  399.       ADDED_OBJ ad, *adp;
  400.   
  401.       if (a == NULL)
                 ^
  402.           return (NID_undef);
  403.       if (a->nid != 0)

crypto/objects/obj_dat.c:402:9: 
  400.   
  401.       if (a == NULL)
  402. >         return (NID_undef);
  403.       if (a->nid != 0)
  404.           return (a->nid);

crypto/objects/obj_dat.c:417:1: return from a call to OBJ_obj2nid
  415.           return (NID_undef);
  416.       return (nid_objs[*op].nid);
  417. > }
  418.   
  419.   /*

apps/ca.c:1692:17: 
1690.               nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(ne));
1691.   
1692. >             if (str->type == V_ASN1_UNIVERSALSTRING)
1693.                   ASN1_UNIVERSALSTRING_to_string(str);
1694.   
