apps/srp.c:148: error: NULL_DEREFERENCE
  pointer `pp` last assigned on line 147 could be null and is dereferenced at line 148, column 43.
Showing all 12 steps of the trace


apps/srp.c:143:1: start of procedure print_entry()
141.   }
142.   
143. > static void print_entry(CA_DB *db, BIO *bio, int indx, int verbose, char *s)
144.   {
145.       if (indx >= 0 && verbose) {

apps/srp.c:145:9: Taking true branch
143.   static void print_entry(CA_DB *db, BIO *bio, int indx, int verbose, char *s)
144.   {
145.       if (indx >= 0 && verbose) {
               ^
146.           int j;
147.           char **pp = sk_OPENSSL_PSTRING_value(db->db->data, indx);

apps/srp.c:145:22: Taking true branch
143.   static void print_entry(CA_DB *db, BIO *bio, int indx, int verbose, char *s)
144.   {
145.       if (indx >= 0 && verbose) {
                            ^
146.           int j;
147.           char **pp = sk_OPENSSL_PSTRING_value(db->db->data, indx);

apps/srp.c:147:21: Condition is true
145.       if (indx >= 0 && verbose) {
146.           int j;
147.           char **pp = sk_OPENSSL_PSTRING_value(db->db->data, indx);
                           ^
148.           BIO_printf(bio, "%s \"%s\"\n", s, pp[DB_srpid]);
149.           for (j = 0; j < DB_NUMBER; j++) {

apps/srp.c:147:9: 
145.       if (indx >= 0 && verbose) {
146.           int j;
147. >         char **pp = sk_OPENSSL_PSTRING_value(db->db->data, indx);
148.           BIO_printf(bio, "%s \"%s\"\n", s, pp[DB_srpid]);
149.           for (j = 0; j < DB_NUMBER; j++) {

crypto/stack/stack.c:338:1: start of procedure sk_value()
  336.   }
  337.   
  338. > void *sk_value(const _STACK *st, int i)
  339.   {
  340.   	if(!st || (i < 0) || (i >= st->num)) return NULL;

crypto/stack/stack.c:340:6: Taking false branch
  338.   void *sk_value(const _STACK *st, int i)
  339.   {
  340.   	if(!st || (i < 0) || (i >= st->num)) return NULL;
              ^
  341.   	return st->data[i];
  342.   }

crypto/stack/stack.c:340:13: Taking false branch
  338.   void *sk_value(const _STACK *st, int i)
  339.   {
  340.   	if(!st || (i < 0) || (i >= st->num)) return NULL;
                     ^
  341.   	return st->data[i];
  342.   }

crypto/stack/stack.c:340:24: Taking true branch
  338.   void *sk_value(const _STACK *st, int i)
  339.   {
  340.   	if(!st || (i < 0) || (i >= st->num)) return NULL;
                                ^
  341.   	return st->data[i];
  342.   }

crypto/stack/stack.c:340:39: 
  338.   void *sk_value(const _STACK *st, int i)
  339.   {
  340. > 	if(!st || (i < 0) || (i >= st->num)) return NULL;
  341.   	return st->data[i];
  342.   }

crypto/stack/stack.c:342:1: return from a call to sk_value
  340.   	if(!st || (i < 0) || (i >= st->num)) return NULL;
  341.   	return st->data[i];
  342. > }
  343.   
  344.   void *sk_set(_STACK *st, int i, void *value)

apps/srp.c:148:9: 
146.           int j;
147.           char **pp = sk_OPENSSL_PSTRING_value(db->db->data, indx);
148. >         BIO_printf(bio, "%s \"%s\"\n", s, pp[DB_srpid]);
149.           for (j = 0; j < DB_NUMBER; j++) {
150.               BIO_printf(bio_err, "  %d = \"%s\"\n", j, pp[j]);
