apps/pkcs12.c:914: error: NULL_DEREFERENCE
  pointer `av` last assigned on line 913 could be null and is dereferenced at line 914, column 21.
Showing all 92 steps of the trace


apps/pkcs12.c:883:1: start of procedure print_attribs()
881.   /* Generalised attribute print: handle PKCS#8 and bag attributes */
882.   
883. > int print_attribs(BIO *out, const STACK_OF(X509_ATTRIBUTE) *attrlst,
884.                     const char *name)
885.   {

apps/pkcs12.c:890:10: Taking false branch
888.       char *value;
889.       int i, attr_nid;
890.       if (!attrlst) {
                ^
891.           BIO_printf(out, "%s: <No Attributes>\n", name);
892.           return 1;

apps/pkcs12.c:894:10: 
892.           return 1;
893.       }
894. >     if (!sk_X509_ATTRIBUTE_num(attrlst)) {
895.           BIO_printf(out, "%s: <Empty Attributes>\n", name);
896.           return 1;

include/openssl/x509.h:89:1: start of procedure sk_X509_ATTRIBUTE_num()
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

crypto/stack/stack.c:379:1: start of procedure OPENSSL_sk_num()
    377.   }
    378.   
    379. > int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381.       return st == NULL ? -1 : st->num;

crypto/stack/stack.c:381:12: Condition is false
    379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381.       return st == NULL ? -1 : st->num;
                      ^
    382.   }
    383.   

crypto/stack/stack.c:381:5: 
    379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381. >     return st == NULL ? -1 : st->num;
    382.   }
    383.   

crypto/stack/stack.c:382:1: return from a call to OPENSSL_sk_num
    380.   {
    381.       return st == NULL ? -1 : st->num;
    382. > }
    383.   
    384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)

include/openssl/x509.h:89:1: return from a call to sk_X509_ATTRIBUTE_num
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

apps/pkcs12.c:894:10: Taking false branch
892.           return 1;
893.       }
894.       if (!sk_X509_ATTRIBUTE_num(attrlst)) {
                ^
895.           BIO_printf(out, "%s: <Empty Attributes>\n", name);
896.           return 1;

apps/pkcs12.c:898:5: Skipping BIO_printf(): empty list of specs
896.           return 1;
897.       }
898.       BIO_printf(out, "%s\n", name);
           ^
899.       for (i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {
900.           ASN1_OBJECT *attr_obj;

apps/pkcs12.c:899:10: 
897.       }
898.       BIO_printf(out, "%s\n", name);
899. >     for (i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {
900.           ASN1_OBJECT *attr_obj;
901.           attr = sk_X509_ATTRIBUTE_value(attrlst, i);

apps/pkcs12.c:899:17: 
897.       }
898.       BIO_printf(out, "%s\n", name);
899. >     for (i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {
900.           ASN1_OBJECT *attr_obj;
901.           attr = sk_X509_ATTRIBUTE_value(attrlst, i);

include/openssl/x509.h:89:1: start of procedure sk_X509_ATTRIBUTE_num()
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

crypto/stack/stack.c:379:1: start of procedure OPENSSL_sk_num()
    377.   }
    378.   
    379. > int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381.       return st == NULL ? -1 : st->num;

crypto/stack/stack.c:381:12: Condition is false
    379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381.       return st == NULL ? -1 : st->num;
                      ^
    382.   }
    383.   

crypto/stack/stack.c:381:5: 
    379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
    380.   {
    381. >     return st == NULL ? -1 : st->num;
    382.   }
    383.   

crypto/stack/stack.c:382:1: return from a call to OPENSSL_sk_num
    380.   {
    381.       return st == NULL ? -1 : st->num;
    382. > }
    383.   
    384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)

include/openssl/x509.h:89:1: return from a call to sk_X509_ATTRIBUTE_num
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

apps/pkcs12.c:899:17: Loop condition is true. Entering loop body
897.       }
898.       BIO_printf(out, "%s\n", name);
899.       for (i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {
                       ^
900.           ASN1_OBJECT *attr_obj;
901.           attr = sk_X509_ATTRIBUTE_value(attrlst, i);

apps/pkcs12.c:901:9: 
899.       for (i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {
900.           ASN1_OBJECT *attr_obj;
901. >         attr = sk_X509_ATTRIBUTE_value(attrlst, i);
902.           attr_obj = X509_ATTRIBUTE_get0_object(attr);
903.           attr_nid = OBJ_obj2nid(attr_obj);

include/openssl/x509.h:89:1: start of procedure sk_X509_ATTRIBUTE_value()
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

crypto/stack/stack.c:384:1: start of procedure OPENSSL_sk_value()
    382.   }
    383.   
    384. > void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
    385.   {
    386.       if (st == NULL || i < 0 || i >= st->num)

crypto/stack/stack.c:386:9: Taking false branch
    384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
    385.   {
    386.       if (st == NULL || i < 0 || i >= st->num)
                   ^
    387.           return NULL;
    388.       return (void *)st->data[i];

crypto/stack/stack.c:386:23: Taking false branch
    384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
    385.   {
    386.       if (st == NULL || i < 0 || i >= st->num)
                                 ^
    387.           return NULL;
    388.       return (void *)st->data[i];

crypto/stack/stack.c:386:32: Taking false branch
    384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
    385.   {
    386.       if (st == NULL || i < 0 || i >= st->num)
                                          ^
    387.           return NULL;
    388.       return (void *)st->data[i];

crypto/stack/stack.c:388:5: 
    386.       if (st == NULL || i < 0 || i >= st->num)
    387.           return NULL;
    388. >     return (void *)st->data[i];
    389.   }
    390.   

crypto/stack/stack.c:389:1: return from a call to OPENSSL_sk_value
    387.           return NULL;
    388.       return (void *)st->data[i];
    389. > }
    390.   
    391.   void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)

include/openssl/x509.h:89:1: return from a call to sk_X509_ATTRIBUTE_value
  87.   typedef struct x509_attributes_st X509_ATTRIBUTE;
  88.   
  89. > DEFINE_STACK_OF(X509_ATTRIBUTE)
  90.   
  91.   typedef struct X509_req_info_st X509_REQ_INFO;

apps/pkcs12.c:902:9: 
900.           ASN1_OBJECT *attr_obj;
901.           attr = sk_X509_ATTRIBUTE_value(attrlst, i);
902. >         attr_obj = X509_ATTRIBUTE_get0_object(attr);
903.           attr_nid = OBJ_obj2nid(attr_obj);
904.           BIO_printf(out, "    ");

crypto/x509/x509_att.c:303:1: start of procedure X509_ATTRIBUTE_get0_object()
  301.   }
  302.   
  303. > ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)
  304.   {
  305.       if (attr == NULL)

crypto/x509/x509_att.c:305:9: Taking false branch
  303.   ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)
  304.   {
  305.       if (attr == NULL)
                 ^
  306.           return NULL;
  307.       return attr->object;

crypto/x509/x509_att.c:307:5: 
  305.       if (attr == NULL)
  306.           return NULL;
  307. >     return attr->object;
  308.   }
  309.   

crypto/x509/x509_att.c:308:1: return from a call to X509_ATTRIBUTE_get0_object
  306.           return NULL;
  307.       return attr->object;
  308. > }
  309.   
  310.   void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,

apps/pkcs12.c:903:9: 
901.           attr = sk_X509_ATTRIBUTE_value(attrlst, i);
902.           attr_obj = X509_ATTRIBUTE_get0_object(attr);
903. >         attr_nid = OBJ_obj2nid(attr_obj);
904.           BIO_printf(out, "    ");
905.           if (attr_nid == NID_undef) {

crypto/objects/obj_dat.c:326:1: start of procedure OBJ_obj2nid()
  324.   IMPLEMENT_OBJ_BSEARCH_CMP_FN(const ASN1_OBJECT *, unsigned int, obj);
  325.   
  326. > int OBJ_obj2nid(const ASN1_OBJECT *a)
  327.   {
  328.       const unsigned int *op;

crypto/objects/obj_dat.c:331:9: Taking false branch
  329.       ADDED_OBJ ad, *adp;
  330.   
  331.       if (a == NULL)
                 ^
  332.           return NID_undef;
  333.       if (a->nid != 0)

crypto/objects/obj_dat.c:333:9: Taking false branch
  331.       if (a == NULL)
  332.           return NID_undef;
  333.       if (a->nid != 0)
                 ^
  334.           return a->nid;
  335.   

crypto/objects/obj_dat.c:336:9: Taking false branch
  334.           return a->nid;
  335.   
  336.       if (a->length == 0)
                 ^
  337.           return NID_undef;
  338.   

crypto/objects/obj_dat.c:340:5: Skipping OPENSSL_init_crypto(): empty list of specs
  338.   
  339.       /* Make sure we've loaded config before checking for any "added" objects */
  340.       OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
             ^
  341.   
  342.       if (added != NULL) {

crypto/objects/obj_dat.c:342:9: Taking true branch
  340.       OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, NULL);
  341.   
  342.       if (added != NULL) {
                 ^
  343.           ad.type = ADDED_DATA;
  344.           ad.obj = (ASN1_OBJECT *)a; /* XXX: ugly but harmless */

crypto/objects/obj_dat.c:343:9: 
  341.   
  342.       if (added != NULL) {
  343. >         ad.type = ADDED_DATA;
  344.           ad.obj = (ASN1_OBJECT *)a; /* XXX: ugly but harmless */
  345.           adp = lh_ADDED_OBJ_retrieve(added, &ad);

crypto/objects/obj_dat.c:344:9: 
  342.       if (added != NULL) {
  343.           ad.type = ADDED_DATA;
  344. >         ad.obj = (ASN1_OBJECT *)a; /* XXX: ugly but harmless */
  345.           adp = lh_ADDED_OBJ_retrieve(added, &ad);
  346.           if (adp != NULL)

crypto/objects/obj_dat.c:345:9: 
  343.           ad.type = ADDED_DATA;
  344.           ad.obj = (ASN1_OBJECT *)a; /* XXX: ugly but harmless */
  345. >         adp = lh_ADDED_OBJ_retrieve(added, &ad);
  346.           if (adp != NULL)
  347.               return adp->obj->nid;

crypto/objects/obj_lcl.h:14:1: start of procedure lh_ADDED_OBJ_retrieve()
    12.   DEFINE_LHASH_OF(OBJ_NAME);
    13.   typedef struct added_obj_st ADDED_OBJ;
    14. > DEFINE_LHASH_OF(ADDED_OBJ);

crypto/lhash/lhash.c:165:1: start of procedure OPENSSL_LH_retrieve()
      163.   }
      164.   
      165. > void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data)
      166.   {
      167.       unsigned long hash;

crypto/lhash/lhash.c:171:5: 
      169.       void *ret;
      170.   
      171. >     tsan_store((TSAN_QUALIFIER int *)&lh->error, 0);
      172.   
      173.       rn = getrn(lh, data, &hash);

crypto/lhash/lhash.c:173:5: Skipping getrn(): empty list of specs
      171.       tsan_store((TSAN_QUALIFIER int *)&lh->error, 0);
      172.   
      173.       rn = getrn(lh, data, &hash);
                 ^
      174.   
      175.       if (*rn == NULL) {

crypto/lhash/lhash.c:175:9: Taking false branch
      173.       rn = getrn(lh, data, &hash);
      174.   
      175.       if (*rn == NULL) {
                     ^
      176.           tsan_counter(&lh->num_retrieve_miss);
      177.           return NULL;

crypto/lhash/lhash.c:179:9: 
      177.           return NULL;
      178.       } else {
      179. >         ret = (*rn)->data;
      180.           tsan_counter(&lh->num_retrieve);
      181.       }

crypto/lhash/lhash.c:180:9: 
      178.       } else {
      179.           ret = (*rn)->data;
      180. >         tsan_counter(&lh->num_retrieve);
      181.       }
      182.   

crypto/lhash/lhash.c:183:5: 
      181.       }
      182.   
      183. >     return ret;
      184.   }
      185.   

crypto/lhash/lhash.c:184:1: return from a call to OPENSSL_LH_retrieve
      182.   
      183.       return ret;
      184. > }
      185.   
      186.   static void doall_util_fn(OPENSSL_LHASH *lh, int use_arg,

crypto/objects/obj_lcl.h:14:1: return from a call to lh_ADDED_OBJ_retrieve
    12.   DEFINE_LHASH_OF(OBJ_NAME);
    13.   typedef struct added_obj_st ADDED_OBJ;
    14. > DEFINE_LHASH_OF(ADDED_OBJ);

crypto/objects/obj_dat.c:346:13: Taking true branch
  344.           ad.obj = (ASN1_OBJECT *)a; /* XXX: ugly but harmless */
  345.           adp = lh_ADDED_OBJ_retrieve(added, &ad);
  346.           if (adp != NULL)
                     ^
  347.               return adp->obj->nid;
  348.       }

crypto/objects/obj_dat.c:347:13: 
  345.           adp = lh_ADDED_OBJ_retrieve(added, &ad);
  346.           if (adp != NULL)
  347. >             return adp->obj->nid;
  348.       }
  349.       op = OBJ_bsearch_obj(&a, obj_objs, NUM_OBJ);

crypto/objects/obj_dat.c:353:1: return from a call to OBJ_obj2nid
  351.           return NID_undef;
  352.       return nid_objs[*op].nid;
  353. > }
  354.   
  355.   /*

apps/pkcs12.c:904:9: Skipping BIO_printf(): empty list of specs
902.           attr_obj = X509_ATTRIBUTE_get0_object(attr);
903.           attr_nid = OBJ_obj2nid(attr_obj);
904.           BIO_printf(out, "    ");
               ^
905.           if (attr_nid == NID_undef) {
906.               i2a_ASN1_OBJECT(out, attr_obj);

apps/pkcs12.c:905:13: Taking false branch
903.           attr_nid = OBJ_obj2nid(attr_obj);
904.           BIO_printf(out, "    ");
905.           if (attr_nid == NID_undef) {
                   ^
906.               i2a_ASN1_OBJECT(out, attr_obj);
907.               BIO_printf(out, ": ");

apps/pkcs12.c:909:13: 
907.               BIO_printf(out, ": ");
908.           } else {
909. >             BIO_printf(out, "%s: ", OBJ_nid2ln(attr_nid));
910.           }
911.   

crypto/objects/obj_dat.c:280:1: start of procedure OBJ_nid2ln()
  278.   }
  279.   
  280. > const char *OBJ_nid2ln(int n)
  281.   {
  282.       ADDED_OBJ ad, *adp;

crypto/objects/obj_dat.c:285:10: Taking true branch
  283.       ASN1_OBJECT ob;
  284.   
  285.       if ((n >= 0) && (n < NUM_NID)) {
                  ^
  286.           if ((n != NID_undef) && (nid_objs[n].nid == NID_undef)) {
  287.               OBJerr(OBJ_F_OBJ_NID2LN, OBJ_R_UNKNOWN_NID);

crypto/objects/obj_dat.c:285:22: Taking true branch
  283.       ASN1_OBJECT ob;
  284.   
  285.       if ((n >= 0) && (n < NUM_NID)) {
                              ^
  286.           if ((n != NID_undef) && (nid_objs[n].nid == NID_undef)) {
  287.               OBJerr(OBJ_F_OBJ_NID2LN, OBJ_R_UNKNOWN_NID);

crypto/objects/obj_dat.c:286:14: Taking true branch
  284.   
  285.       if ((n >= 0) && (n < NUM_NID)) {
  286.           if ((n != NID_undef) && (nid_objs[n].nid == NID_undef)) {
                      ^
  287.               OBJerr(OBJ_F_OBJ_NID2LN, OBJ_R_UNKNOWN_NID);
  288.               return NULL;

crypto/objects/obj_dat.c:286:34: Taking false branch
  284.   
  285.       if ((n >= 0) && (n < NUM_NID)) {
  286.           if ((n != NID_undef) && (nid_objs[n].nid == NID_undef)) {
                                          ^
  287.               OBJerr(OBJ_F_OBJ_NID2LN, OBJ_R_UNKNOWN_NID);
  288.               return NULL;

crypto/objects/obj_dat.c:290:9: 
  288.               return NULL;
  289.           }
  290. >         return nid_objs[n].ln;
  291.       }
  292.   

crypto/objects/obj_dat.c:308:1: return from a call to OBJ_nid2ln
  306.       OBJerr(OBJ_F_OBJ_NID2LN, OBJ_R_UNKNOWN_NID);
  307.       return NULL;
  308. > }
  309.   
  310.   static int obj_cmp(const ASN1_OBJECT *const *ap, const unsigned int *bp)

apps/pkcs12.c:909:13: Skipping BIO_printf(): empty list of specs
907.               BIO_printf(out, ": ");
908.           } else {
909.               BIO_printf(out, "%s: ", OBJ_nid2ln(attr_nid));
                   ^
910.           }
911.   

apps/pkcs12.c:912:13: 
910.           }
911.   
912. >         if (X509_ATTRIBUTE_count(attr)) {
913.               av = X509_ATTRIBUTE_get0_type(attr, 0);
914.               switch (av->type) {

crypto/x509/x509_att.c:296:1: start of procedure X509_ATTRIBUTE_count()
  294.   }
  295.   
  296. > int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr)
  297.   {
  298.       if (attr == NULL)

crypto/x509/x509_att.c:298:9: Taking false branch
  296.   int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr)
  297.   {
  298.       if (attr == NULL)
                 ^
  299.           return 0;
  300.       return sk_ASN1_TYPE_num(attr->set);

crypto/x509/x509_att.c:300:5: 
  298.       if (attr == NULL)
  299.           return 0;
  300. >     return sk_ASN1_TYPE_num(attr->set);
  301.   }
  302.   

include/openssl/asn1.h:454:1: start of procedure sk_ASN1_TYPE_num()
    452.   } ASN1_TYPE;
    453.   
    454. > DEFINE_STACK_OF(ASN1_TYPE)
    455.   
    456.   typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;

crypto/stack/stack.c:379:1: start of procedure OPENSSL_sk_num()
      377.   }
      378.   
      379. > int OPENSSL_sk_num(const OPENSSL_STACK *st)
      380.   {
      381.       return st == NULL ? -1 : st->num;

crypto/stack/stack.c:381:12: Condition is true
      379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
      380.   {
      381.       return st == NULL ? -1 : st->num;
                        ^
      382.   }
      383.   

crypto/stack/stack.c:381:5: 
      379.   int OPENSSL_sk_num(const OPENSSL_STACK *st)
      380.   {
      381. >     return st == NULL ? -1 : st->num;
      382.   }
      383.   

crypto/stack/stack.c:382:1: return from a call to OPENSSL_sk_num
      380.   {
      381.       return st == NULL ? -1 : st->num;
      382. > }
      383.   
      384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)

include/openssl/asn1.h:454:1: return from a call to sk_ASN1_TYPE_num
    452.   } ASN1_TYPE;
    453.   
    454. > DEFINE_STACK_OF(ASN1_TYPE)
    455.   
    456.   typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;

crypto/x509/x509_att.c:301:1: return from a call to X509_ATTRIBUTE_count
  299.           return 0;
  300.       return sk_ASN1_TYPE_num(attr->set);
  301. > }
  302.   
  303.   ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr)

apps/pkcs12.c:912:13: Taking true branch
910.           }
911.   
912.           if (X509_ATTRIBUTE_count(attr)) {
                   ^
913.               av = X509_ATTRIBUTE_get0_type(attr, 0);
914.               switch (av->type) {

apps/pkcs12.c:913:13: 
911.   
912.           if (X509_ATTRIBUTE_count(attr)) {
913. >             av = X509_ATTRIBUTE_get0_type(attr, 0);
914.               switch (av->type) {
915.               case V_ASN1_BMPSTRING:

crypto/x509/x509_att.c:326:1: start of procedure X509_ATTRIBUTE_get0_type()
  324.   }
  325.   
  326. > ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx)
  327.   {
  328.       if (attr == NULL)

crypto/x509/x509_att.c:328:9: Taking false branch
  326.   ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx)
  327.   {
  328.       if (attr == NULL)
                 ^
  329.           return NULL;
  330.       return sk_ASN1_TYPE_value(attr->set, idx);

crypto/x509/x509_att.c:330:5: 
  328.       if (attr == NULL)
  329.           return NULL;
  330. >     return sk_ASN1_TYPE_value(attr->set, idx);
  331.   }

include/openssl/asn1.h:454:1: start of procedure sk_ASN1_TYPE_value()
    452.   } ASN1_TYPE;
    453.   
    454. > DEFINE_STACK_OF(ASN1_TYPE)
    455.   
    456.   typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;

crypto/stack/stack.c:384:1: start of procedure OPENSSL_sk_value()
      382.   }
      383.   
      384. > void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
      385.   {
      386.       if (st == NULL || i < 0 || i >= st->num)

crypto/stack/stack.c:386:9: Taking true branch
      384.   void *OPENSSL_sk_value(const OPENSSL_STACK *st, int i)
      385.   {
      386.       if (st == NULL || i < 0 || i >= st->num)
                     ^
      387.           return NULL;
      388.       return (void *)st->data[i];

crypto/stack/stack.c:387:9: 
      385.   {
      386.       if (st == NULL || i < 0 || i >= st->num)
      387. >         return NULL;
      388.       return (void *)st->data[i];
      389.   }

crypto/stack/stack.c:389:1: return from a call to OPENSSL_sk_value
      387.           return NULL;
      388.       return (void *)st->data[i];
      389. > }
      390.   
      391.   void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data)

include/openssl/asn1.h:454:1: return from a call to sk_ASN1_TYPE_value
    452.   } ASN1_TYPE;
    453.   
    454. > DEFINE_STACK_OF(ASN1_TYPE)
    455.   
    456.   typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;

crypto/x509/x509_att.c:331:1: return from a call to X509_ATTRIBUTE_get0_type
  329.           return NULL;
  330.       return sk_ASN1_TYPE_value(attr->set, idx);
  331. > }

apps/pkcs12.c:914:13: 
912.           if (X509_ATTRIBUTE_count(attr)) {
913.               av = X509_ATTRIBUTE_get0_type(attr, 0);
914. >             switch (av->type) {
915.               case V_ASN1_BMPSTRING:
916.                   value = OPENSSL_uni2asc(av->value.bmpstring->data,
