crypto/pkcs7/bio_pk7.c:124: error: NULL_DEREFERENCE
  pointer `p7aux` last assigned on line 109 could be null and is dereferenced at line 124, column 2.
Showing all 117 steps of the trace


crypto/pkcs7/bio_pk7.c:103:1: start of procedure BIO_new_PKCS7()
101.   static int pkcs7_suffix(BIO *b, unsigned char **pbuf, int *plen, void *parg);
102.   
103. > BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7) 
104.   	{
105.   	PKCS7_SUPPORT *p7aux = NULL;

crypto/pkcs7/bio_pk7.c:105:2: 
103.   BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7) 
104.   	{
105. > 	PKCS7_SUPPORT *p7aux = NULL;
106.   	BIO *p7bio = NULL;
107.   	BIO *asn_bio = NULL;

crypto/pkcs7/bio_pk7.c:106:2: 
104.   	{
105.   	PKCS7_SUPPORT *p7aux = NULL;
106. > 	BIO *p7bio = NULL;
107.   	BIO *asn_bio = NULL;
108.   	unsigned char **boundary;

crypto/pkcs7/bio_pk7.c:107:2: 
105.   	PKCS7_SUPPORT *p7aux = NULL;
106.   	BIO *p7bio = NULL;
107. > 	BIO *asn_bio = NULL;
108.   	unsigned char **boundary;
109.   	p7aux = OPENSSL_malloc(sizeof(PKCS7_SUPPORT));

crypto/pkcs7/bio_pk7.c:109:2: 
107.   	BIO *asn_bio = NULL;
108.   	unsigned char **boundary;
109. > 	p7aux = OPENSSL_malloc(sizeof(PKCS7_SUPPORT));
110.   	asn_bio = BIO_new(BIO_f_asn1());
111.   

crypto/mem.c:291:1: start of procedure CRYPTO_malloc()
  289.   	}
  290.   
  291. > void *CRYPTO_malloc(int num, const char *file, int line)
  292.   	{
  293.   	void *ret = NULL;

crypto/mem.c:293:2: 
  291.   void *CRYPTO_malloc(int num, const char *file, int line)
  292.   	{
  293. > 	void *ret = NULL;
  294.   	extern unsigned char cleanse_ctr;
  295.   

crypto/mem.c:296:6: Taking false branch
  294.   	extern unsigned char cleanse_ctr;
  295.   
  296.   	if (num <= 0) return NULL;
              ^
  297.   
  298.   	allow_customize = 0;

crypto/mem.c:298:2: 
  296.   	if (num <= 0) return NULL;
  297.   
  298. > 	allow_customize = 0;
  299.   	if (malloc_debug_func != NULL)
  300.   		{

crypto/mem.c:299:6: Taking true branch
  297.   
  298.   	allow_customize = 0;
  299.   	if (malloc_debug_func != NULL)
              ^
  300.   		{
  301.   		allow_customize_debug = 0;

crypto/mem.c:301:3: 
  299.   	if (malloc_debug_func != NULL)
  300.   		{
  301. > 		allow_customize_debug = 0;
  302.   		malloc_debug_func(NULL, num, file, line, 0);
  303.   		}

crypto/mem.c:302:3: Skipping __function_pointer__(): unresolved function pointer
  300.   		{
  301.   		allow_customize_debug = 0;
  302.   		malloc_debug_func(NULL, num, file, line, 0);
           ^
  303.   		}
  304.   	ret = malloc_ex_func(num,file,line);

crypto/mem.c:304:2: Skipping __function_pointer__(): unresolved function pointer
  302.   		malloc_debug_func(NULL, num, file, line, 0);
  303.   		}
  304.   	ret = malloc_ex_func(num,file,line);
          ^
  305.   #ifdef LEVITTE_DEBUG_MEM
  306.   	fprintf(stderr, "LEVITTE_DEBUG_MEM:         > 0x%p (%d)\n", ret, num);

crypto/mem.c:308:6: Taking true branch
  306.   	fprintf(stderr, "LEVITTE_DEBUG_MEM:         > 0x%p (%d)\n", ret, num);
  307.   #endif
  308.   	if (malloc_debug_func != NULL)
              ^
  309.   		malloc_debug_func(ret, num, file, line, 1);
  310.   

crypto/mem.c:309:3: Skipping __function_pointer__(): unresolved function pointer
  307.   #endif
  308.   	if (malloc_debug_func != NULL)
  309.   		malloc_debug_func(ret, num, file, line, 1);
           ^
  310.   
  311.           /* Create a dependency on the value of 'cleanse_ctr' so our memory

crypto/mem.c:314:12: Taking false branch
  312.            * sanitisation function can't be optimised out. NB: We only do
  313.            * this for >2Kb so the overhead doesn't bother us. */
  314.           if(ret && (num > 2048))
                    ^
  315.                   ((unsigned char *)ret)[0] = cleanse_ctr;
  316.   

crypto/mem.c:317:2: 
  315.                   ((unsigned char *)ret)[0] = cleanse_ctr;
  316.   
  317. > 	return ret;
  318.   	}
  319.   

crypto/mem.c:318:2: return from a call to CRYPTO_malloc
  316.   
  317.   	return ret;
  318.   	}
          ^
  319.   
  320.   void *CRYPTO_realloc(void *str, int num, const char *file, int line)

crypto/pkcs7/bio_pk7.c:110:2: 
108.   	unsigned char **boundary;
109.   	p7aux = OPENSSL_malloc(sizeof(PKCS7_SUPPORT));
110. > 	asn_bio = BIO_new(BIO_f_asn1());
111.   
112.   	/* ASN1 bio needs to be next to output BIO */

crypto/asn1/bio_asn1.c:144:1: start of procedure BIO_f_asn1()
  142.   	};
  143.   
  144. > BIO_METHOD *BIO_f_asn1(void)
  145.   	{
  146.   	return(&methods_asn1);

crypto/asn1/bio_asn1.c:146:2: 
  144.   BIO_METHOD *BIO_f_asn1(void)
  145.   	{
  146. > 	return(&methods_asn1);
  147.   	}
  148.   

crypto/asn1/bio_asn1.c:147:2: return from a call to BIO_f_asn1
  145.   	{
  146.   	return(&methods_asn1);
  147.   	}
          ^
  148.   
  149.   

crypto/bio/bio_lib.c:66:1: start of procedure BIO_new()
  64.   #include <openssl/stack.h>
  65.   
  66. > BIO *BIO_new(BIO_METHOD *method)
  67.   	{
  68.   	BIO *ret=NULL;

crypto/bio/bio_lib.c:68:2: 
  66.   BIO *BIO_new(BIO_METHOD *method)
  67.   	{
  68. > 	BIO *ret=NULL;
  69.   
  70.   	ret=(BIO *)OPENSSL_malloc(sizeof(BIO));

crypto/bio/bio_lib.c:70:2: 
  68.   	BIO *ret=NULL;
  69.   
  70. > 	ret=(BIO *)OPENSSL_malloc(sizeof(BIO));
  71.   	if (ret == NULL)
  72.   		{

crypto/mem.c:291:1: start of procedure CRYPTO_malloc()
    289.   	}
    290.   
    291. > void *CRYPTO_malloc(int num, const char *file, int line)
    292.   	{
    293.   	void *ret = NULL;

crypto/mem.c:293:2: 
    291.   void *CRYPTO_malloc(int num, const char *file, int line)
    292.   	{
    293. > 	void *ret = NULL;
    294.   	extern unsigned char cleanse_ctr;
    295.   

crypto/mem.c:296:6: Taking false branch
    294.   	extern unsigned char cleanse_ctr;
    295.   
    296.   	if (num <= 0) return NULL;
                ^
    297.   
    298.   	allow_customize = 0;

crypto/mem.c:298:2: 
    296.   	if (num <= 0) return NULL;
    297.   
    298. > 	allow_customize = 0;
    299.   	if (malloc_debug_func != NULL)
    300.   		{

crypto/mem.c:299:6: Taking true branch
    297.   
    298.   	allow_customize = 0;
    299.   	if (malloc_debug_func != NULL)
                ^
    300.   		{
    301.   		allow_customize_debug = 0;

crypto/mem.c:301:3: 
    299.   	if (malloc_debug_func != NULL)
    300.   		{
    301. > 		allow_customize_debug = 0;
    302.   		malloc_debug_func(NULL, num, file, line, 0);
    303.   		}

crypto/mem.c:302:3: Skipping __function_pointer__(): unresolved function pointer
    300.   		{
    301.   		allow_customize_debug = 0;
    302.   		malloc_debug_func(NULL, num, file, line, 0);
             ^
    303.   		}
    304.   	ret = malloc_ex_func(num,file,line);

crypto/mem.c:304:2: Skipping __function_pointer__(): unresolved function pointer
    302.   		malloc_debug_func(NULL, num, file, line, 0);
    303.   		}
    304.   	ret = malloc_ex_func(num,file,line);
            ^
    305.   #ifdef LEVITTE_DEBUG_MEM
    306.   	fprintf(stderr, "LEVITTE_DEBUG_MEM:         > 0x%p (%d)\n", ret, num);

crypto/mem.c:308:6: Taking true branch
    306.   	fprintf(stderr, "LEVITTE_DEBUG_MEM:         > 0x%p (%d)\n", ret, num);
    307.   #endif
    308.   	if (malloc_debug_func != NULL)
                ^
    309.   		malloc_debug_func(ret, num, file, line, 1);
    310.   

crypto/mem.c:309:3: Skipping __function_pointer__(): unresolved function pointer
    307.   #endif
    308.   	if (malloc_debug_func != NULL)
    309.   		malloc_debug_func(ret, num, file, line, 1);
             ^
    310.   
    311.           /* Create a dependency on the value of 'cleanse_ctr' so our memory

crypto/mem.c:314:12: Taking false branch
    312.            * sanitisation function can't be optimised out. NB: We only do
    313.            * this for >2Kb so the overhead doesn't bother us. */
    314.           if(ret && (num > 2048))
                      ^
    315.                   ((unsigned char *)ret)[0] = cleanse_ctr;
    316.   

crypto/mem.c:317:2: 
    315.                   ((unsigned char *)ret)[0] = cleanse_ctr;
    316.   
    317. > 	return ret;
    318.   	}
    319.   

crypto/mem.c:318:2: return from a call to CRYPTO_malloc
    316.   
    317.   	return ret;
    318.   	}
            ^
    319.   
    320.   void *CRYPTO_realloc(void *str, int num, const char *file, int line)

crypto/bio/bio_lib.c:71:6: Taking true branch
  69.   
  70.   	ret=(BIO *)OPENSSL_malloc(sizeof(BIO));
  71.   	if (ret == NULL)
             ^
  72.   		{
  73.   		BIOerr(BIO_F_BIO_NEW,ERR_R_MALLOC_FAILURE);

crypto/bio/bio_lib.c:73:3: 
  71.   	if (ret == NULL)
  72.   		{
  73. > 		BIOerr(BIO_F_BIO_NEW,ERR_R_MALLOC_FAILURE);
  74.   		return(NULL);
  75.   		}

crypto/err/err.c:679:1: start of procedure ERR_put_error()
    677.   /********************************************************/
    678.   
    679. > void ERR_put_error(int lib, int func, int reason, const char *file,
    680.   	     int line)
    681.   	{

crypto/err/err.c:703:2: Skipping ERR_get_state(): empty list of specs
    701.   	}
    702.   #endif
    703.   	es=ERR_get_state();
            ^
    704.   
    705.   	es->top=(es->top+1)%ERR_NUM_ERRORS;

crypto/err/err.c:705:2: 
    703.   	es=ERR_get_state();
    704.   
    705. > 	es->top=(es->top+1)%ERR_NUM_ERRORS;
    706.   	if (es->top == es->bottom)
    707.   		es->bottom=(es->bottom+1)%ERR_NUM_ERRORS;

crypto/err/err.c:706:6: Taking false branch
    704.   
    705.   	es->top=(es->top+1)%ERR_NUM_ERRORS;
    706.   	if (es->top == es->bottom)
                ^
    707.   		es->bottom=(es->bottom+1)%ERR_NUM_ERRORS;
    708.   	es->err_flags[es->top]=0;

crypto/err/err.c:708:2: 
    706.   	if (es->top == es->bottom)
    707.   		es->bottom=(es->bottom+1)%ERR_NUM_ERRORS;
    708. > 	es->err_flags[es->top]=0;
    709.   	es->err_buffer[es->top]=ERR_PACK(lib,func,reason);
    710.   	es->err_file[es->top]=file;

crypto/err/err.c:709:2: 
    707.   		es->bottom=(es->bottom+1)%ERR_NUM_ERRORS;
    708.   	es->err_flags[es->top]=0;
    709. > 	es->err_buffer[es->top]=ERR_PACK(lib,func,reason);
    710.   	es->err_file[es->top]=file;
    711.   	es->err_line[es->top]=line;

crypto/err/err.c:710:2: 
    708.   	es->err_flags[es->top]=0;
    709.   	es->err_buffer[es->top]=ERR_PACK(lib,func,reason);
    710. > 	es->err_file[es->top]=file;
    711.   	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);

crypto/err/err.c:711:2: 
    709.   	es->err_buffer[es->top]=ERR_PACK(lib,func,reason);
    710.   	es->err_file[es->top]=file;
    711. > 	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);
    713.   	}

crypto/err/err.c:712:2: Taking true branch
    710.   	es->err_file[es->top]=file;
    711.   	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);
            ^
    713.   	}
    714.   

crypto/err/err.c:712:2: Taking false branch
    710.   	es->err_file[es->top]=file;
    711.   	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);
            ^
    713.   	}
    714.   

crypto/err/err.c:712:2: Loop condition is false. Leaving loop
    710.   	es->err_file[es->top]=file;
    711.   	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);
            ^
    713.   	}
    714.   

crypto/err/err.c:713:2: return from a call to ERR_put_error
    711.   	es->err_line[es->top]=line;
    712.   	err_clear_data(es,es->top);
    713.   	}
            ^
    714.   
    715.   void ERR_clear_error(void)

crypto/bio/bio_lib.c:74:3: 
  72.   		{
  73.   		BIOerr(BIO_F_BIO_NEW,ERR_R_MALLOC_FAILURE);
  74. > 		return(NULL);
  75.   		}
  76.   	if (!BIO_set(ret,method))

crypto/bio/bio_lib.c:82:2: return from a call to BIO_new
  80.   		}
  81.   	return(ret);
  82.   	}
         ^
  83.   
  84.   int BIO_set(BIO *bio, BIO_METHOD *method)

crypto/pkcs7/bio_pk7.c:114:2: 
112.   	/* ASN1 bio needs to be next to output BIO */
113.   
114. > 	out = BIO_push(asn_bio, out);
115.   
116.   	BIO_asn1_set_prefix(asn_bio, pkcs7_prefix, pkcs7_psfix_free);

crypto/bio/bio_lib.c:420:1: start of procedure BIO_push()
  418.   
  419.   /* put the 'bio' on the end of b's list of operators */
  420. > BIO *BIO_push(BIO *b, BIO *bio)
  421.   	{
  422.   	BIO *lb;

crypto/bio/bio_lib.c:424:6: Taking true branch
  422.   	BIO *lb;
  423.   
  424.   	if (b == NULL) return(bio);
              ^
  425.   	lb=b;
  426.   	while (lb->next_bio != NULL)

crypto/bio/bio_lib.c:424:17: 
  422.   	BIO *lb;
  423.   
  424. > 	if (b == NULL) return(bio);
  425.   	lb=b;
  426.   	while (lb->next_bio != NULL)

crypto/bio/bio_lib.c:434:2: return from a call to BIO_push
  432.   	BIO_ctrl(b,BIO_CTRL_PUSH,0,NULL);
  433.   	return(b);
  434.   	}
          ^
  435.   
  436.   /* Remove the first and return the rest */

crypto/pkcs7/bio_pk7.c:116:2: 
114.   	out = BIO_push(asn_bio, out);
115.   
116. > 	BIO_asn1_set_prefix(asn_bio, pkcs7_prefix, pkcs7_psfix_free);
117.   	BIO_asn1_set_suffix(asn_bio, pkcs7_suffix, pkcs7_psfix_free);
118.   

crypto/asn1/bio_asn1.c:477:1: start of procedure BIO_asn1_set_prefix()
  475.   	}
  476.   
  477. > int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, asn1_ps_func *prefix_free)
  478.   	{
  479.   	return asn1_bio_set_ex(b, BIO_C_SET_PREFIX, prefix, prefix_free);

crypto/asn1/bio_asn1.c:479:2: 
  477.   int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, asn1_ps_func *prefix_free)
  478.   	{
  479. > 	return asn1_bio_set_ex(b, BIO_C_SET_PREFIX, prefix, prefix_free);
  480.   	}
  481.   

crypto/asn1/bio_asn1.c:454:1: start of procedure asn1_bio_set_ex()
    452.   	}
    453.   
    454. > static int asn1_bio_set_ex(BIO *b, int cmd,
    455.   		asn1_ps_func *ex_func, asn1_ps_func *ex_free_func)
    456.   	{

crypto/asn1/bio_asn1.c:458:2: 
    456.   	{
    457.   	BIO_ASN1_EX_FUNCS extmp;
    458. > 	extmp.ex_func = ex_func;
    459.   	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);

crypto/asn1/bio_asn1.c:459:2: 
    457.   	BIO_ASN1_EX_FUNCS extmp;
    458.   	extmp.ex_func = ex_func;
    459. > 	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}

crypto/asn1/bio_asn1.c:460:2: 
    458.   	extmp.ex_func = ex_func;
    459.   	extmp.ex_free_func = ex_free_func;
    460. > 	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}
    462.   

crypto/bio/bio_lib.c:351:1: start of procedure BIO_ctrl()
      349.   	}
      350.   
      351. > long BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
      352.   	{
      353.   	long ret;

crypto/bio/bio_lib.c:356:6: Taking true branch
      354.   	long (*cb)(BIO *,int,const char *,int,long,long);
      355.   
      356.   	if (b == NULL) return(0);
                  ^
      357.   
      358.   	if ((b->method == NULL) || (b->method->ctrl == NULL))

crypto/bio/bio_lib.c:356:17: 
      354.   	long (*cb)(BIO *,int,const char *,int,long,long);
      355.   
      356. > 	if (b == NULL) return(0);
      357.   
      358.   	if ((b->method == NULL) || (b->method->ctrl == NULL))

crypto/bio/bio_lib.c:376:2: return from a call to BIO_ctrl
      374.   			larg,ret);
      375.   	return(ret);
      376.   	}
              ^
      377.   
      378.   long BIO_callback_ctrl(BIO *b, int cmd, void (*fp)(struct bio_st *, int, const char *, int, long, long))

crypto/asn1/bio_asn1.c:461:2: return from a call to asn1_bio_set_ex
    459.   	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}
            ^
    462.   
    463.   static int asn1_bio_get_ex(BIO *b, int cmd,

crypto/asn1/bio_asn1.c:480:2: return from a call to BIO_asn1_set_prefix
  478.   	{
  479.   	return asn1_bio_set_ex(b, BIO_C_SET_PREFIX, prefix, prefix_free);
  480.   	}
          ^
  481.   
  482.   int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, asn1_ps_func **pprefix_free)

crypto/pkcs7/bio_pk7.c:117:2: 
115.   
116.   	BIO_asn1_set_prefix(asn_bio, pkcs7_prefix, pkcs7_psfix_free);
117. > 	BIO_asn1_set_suffix(asn_bio, pkcs7_suffix, pkcs7_psfix_free);
118.   
119.   	/* Now initialize BIO for PKCS#7 output */

crypto/asn1/bio_asn1.c:487:1: start of procedure BIO_asn1_set_suffix()
  485.   	}
  486.   
  487. > int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, asn1_ps_func *suffix_free)
  488.   	{
  489.   	return asn1_bio_set_ex(b, BIO_C_SET_SUFFIX, suffix, suffix_free);

crypto/asn1/bio_asn1.c:489:2: 
  487.   int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, asn1_ps_func *suffix_free)
  488.   	{
  489. > 	return asn1_bio_set_ex(b, BIO_C_SET_SUFFIX, suffix, suffix_free);
  490.   	}
  491.   

crypto/asn1/bio_asn1.c:454:1: start of procedure asn1_bio_set_ex()
    452.   	}
    453.   
    454. > static int asn1_bio_set_ex(BIO *b, int cmd,
    455.   		asn1_ps_func *ex_func, asn1_ps_func *ex_free_func)
    456.   	{

crypto/asn1/bio_asn1.c:458:2: 
    456.   	{
    457.   	BIO_ASN1_EX_FUNCS extmp;
    458. > 	extmp.ex_func = ex_func;
    459.   	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);

crypto/asn1/bio_asn1.c:459:2: 
    457.   	BIO_ASN1_EX_FUNCS extmp;
    458.   	extmp.ex_func = ex_func;
    459. > 	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}

crypto/asn1/bio_asn1.c:460:2: 
    458.   	extmp.ex_func = ex_func;
    459.   	extmp.ex_free_func = ex_free_func;
    460. > 	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}
    462.   

crypto/bio/bio_lib.c:351:1: start of procedure BIO_ctrl()
      349.   	}
      350.   
      351. > long BIO_ctrl(BIO *b, int cmd, long larg, void *parg)
      352.   	{
      353.   	long ret;

crypto/bio/bio_lib.c:356:6: Taking true branch
      354.   	long (*cb)(BIO *,int,const char *,int,long,long);
      355.   
      356.   	if (b == NULL) return(0);
                  ^
      357.   
      358.   	if ((b->method == NULL) || (b->method->ctrl == NULL))

crypto/bio/bio_lib.c:356:17: 
      354.   	long (*cb)(BIO *,int,const char *,int,long,long);
      355.   
      356. > 	if (b == NULL) return(0);
      357.   
      358.   	if ((b->method == NULL) || (b->method->ctrl == NULL))

crypto/bio/bio_lib.c:376:2: return from a call to BIO_ctrl
      374.   			larg,ret);
      375.   	return(ret);
      376.   	}
              ^
      377.   
      378.   long BIO_callback_ctrl(BIO *b, int cmd, void (*fp)(struct bio_st *, int, const char *, int, long, long))

crypto/asn1/bio_asn1.c:461:2: return from a call to asn1_bio_set_ex
    459.   	extmp.ex_free_func = ex_free_func;
    460.   	return BIO_ctrl(b, cmd, 0, &extmp);
    461.   	}
            ^
    462.   
    463.   static int asn1_bio_get_ex(BIO *b, int cmd,

crypto/asn1/bio_asn1.c:490:2: return from a call to BIO_asn1_set_suffix
  488.   	{
  489.   	return asn1_bio_set_ex(b, BIO_C_SET_SUFFIX, suffix, suffix_free);
  490.   	}
          ^
  491.   
  492.   int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, asn1_ps_func **psuffix_free)

crypto/pkcs7/bio_pk7.c:121:2: Skipping PKCS7_dataInit(): empty list of specs
119.   	/* Now initialize BIO for PKCS#7 output */
120.   
121.   	p7bio = PKCS7_dataInit(p7, out);
        ^
122.   	PKCS7_stream(&boundary, p7);
123.   

crypto/pkcs7/bio_pk7.c:122:2: 
120.   
121.   	p7bio = PKCS7_dataInit(p7, out);
122. > 	PKCS7_stream(&boundary, p7);
123.   
124.   	p7aux->p7 = p7;

crypto/pkcs7/pk7_lib.c:597:1: start of procedure PKCS7_stream()
  595.   	}
  596.   
  597. > int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
  598.   	{
  599.   	ASN1_OCTET_STRING *os = NULL;

crypto/pkcs7/pk7_lib.c:599:2: 
  597.   int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7)
  598.   	{
  599. > 	ASN1_OCTET_STRING *os = NULL;
  600.   
  601.   	switch (OBJ_obj2nid(p7->type))

crypto/pkcs7/pk7_lib.c:601:2: 
  599.   	ASN1_OCTET_STRING *os = NULL;
  600.   
  601. > 	switch (OBJ_obj2nid(p7->type))
  602.   		{
  603.   		case NID_pkcs7_data:

crypto/objects/obj_dat.c:387:1: start of procedure OBJ_obj2nid()
    385.   	}
    386.   
    387. > int OBJ_obj2nid(const ASN1_OBJECT *a)
    388.   	{
    389.   	ASN1_OBJECT **op;

crypto/objects/obj_dat.c:392:6: Taking false branch
    390.   	ADDED_OBJ ad,*adp;
    391.   
    392.   	if (a == NULL)
                ^
    393.   		return(NID_undef);
    394.   	if (a->nid != 0)

crypto/objects/obj_dat.c:394:6: Taking false branch
    392.   	if (a == NULL)
    393.   		return(NID_undef);
    394.   	if (a->nid != 0)
                ^
    395.   		return(a->nid);
    396.   

crypto/objects/obj_dat.c:397:6: Taking true branch
    395.   		return(a->nid);
    396.   
    397.   	if (added != NULL)
                ^
    398.   		{
    399.   		ad.type=ADDED_DATA;

crypto/objects/obj_dat.c:399:3: 
    397.   	if (added != NULL)
    398.   		{
    399. > 		ad.type=ADDED_DATA;
    400.   		ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
    401.   		adp=(ADDED_OBJ *)lh_retrieve(added,&ad);

crypto/objects/obj_dat.c:400:3: 
    398.   		{
    399.   		ad.type=ADDED_DATA;
    400. > 		ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
    401.   		adp=(ADDED_OBJ *)lh_retrieve(added,&ad);
    402.   		if (adp != NULL) return (adp->obj->nid);

crypto/objects/obj_dat.c:401:3: 
    399.   		ad.type=ADDED_DATA;
    400.   		ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
    401. > 		adp=(ADDED_OBJ *)lh_retrieve(added,&ad);
    402.   		if (adp != NULL) return (adp->obj->nid);
    403.   		}

crypto/lhash/lhash.c:248:1: start of procedure lh_retrieve()
      246.   	}
      247.   
      248. > void *lh_retrieve(LHASH *lh, const void *data)
      249.   	{
      250.   	unsigned long hash;

crypto/lhash/lhash.c:254:2: 
      252.   	void *ret;
      253.   
      254. > 	lh->error=0;
      255.   	rn=getrn(lh,data,&hash);
      256.   

crypto/lhash/lhash.c:255:2: Skipping getrn(): empty list of specs
      253.   
      254.   	lh->error=0;
      255.   	rn=getrn(lh,data,&hash);
              ^
      256.   
      257.   	if (*rn == NULL)

crypto/lhash/lhash.c:257:6: Taking false branch
      255.   	rn=getrn(lh,data,&hash);
      256.   
      257.   	if (*rn == NULL)
                  ^
      258.   		{
      259.   		lh->num_retrieve_miss++;

crypto/lhash/lhash.c:264:3: 
      262.   	else
      263.   		{
      264. > 		ret= (*rn)->data;
      265.   		lh->num_retrieve++;
      266.   		}

crypto/lhash/lhash.c:265:3: 
      263.   		{
      264.   		ret= (*rn)->data;
      265. > 		lh->num_retrieve++;
      266.   		}
      267.   	return(ret);

crypto/lhash/lhash.c:267:2: 
      265.   		lh->num_retrieve++;
      266.   		}
      267. > 	return(ret);
      268.   	}
      269.   

crypto/lhash/lhash.c:268:2: return from a call to lh_retrieve
      266.   		}
      267.   	return(ret);
      268.   	}
              ^
      269.   
      270.   static void doall_util_fn(LHASH *lh, int use_arg, LHASH_DOALL_FN_TYPE func,

crypto/objects/obj_dat.c:402:7: Taking true branch
    400.   		ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
    401.   		adp=(ADDED_OBJ *)lh_retrieve(added,&ad);
    402.   		if (adp != NULL) return (adp->obj->nid);
                 ^
    403.   		}
    404.   	op=(ASN1_OBJECT **)OBJ_bsearch((const char *)&a,(const char *)obj_objs,

crypto/objects/obj_dat.c:402:20: 
    400.   		ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
    401.   		adp=(ADDED_OBJ *)lh_retrieve(added,&ad);
    402. > 		if (adp != NULL) return (adp->obj->nid);
    403.   		}
    404.   	op=(ASN1_OBJECT **)OBJ_bsearch((const char *)&a,(const char *)obj_objs,

crypto/objects/obj_dat.c:409:2: return from a call to OBJ_obj2nid
    407.   		return(NID_undef);
    408.   	return((*op)->nid);
    409.   	}
            ^
    410.   
    411.   /* Convert an object name into an ASN1_OBJECT

crypto/pkcs7/pk7_lib.c:603:3: Switch condition is false. Skipping switch case
  601.   	switch (OBJ_obj2nid(p7->type))
  602.   		{
  603.   		case NID_pkcs7_data:
           ^
  604.   		os = p7->d.data;
  605.   		break;

crypto/pkcs7/pk7_lib.c:607:3: Switch condition is false. Skipping switch case
  605.   		break;
  606.   
  607.   		case NID_pkcs7_signedAndEnveloped:
           ^
  608.   		os = p7->d.signed_and_enveloped->enc_data->enc_data;
  609.   		if (os == NULL)

crypto/pkcs7/pk7_lib.c:616:3: Switch condition is false. Skipping switch case
  614.   		break;
  615.   
  616.   		case NID_pkcs7_enveloped:
           ^
  617.   		os = p7->d.enveloped->enc_data->enc_data;
  618.   		if (os == NULL)

crypto/pkcs7/pk7_lib.c:625:3: Switch condition is false. Skipping switch case
  623.   		break;
  624.   
  625.   		case NID_pkcs7_signed:
           ^
  626.   		os=p7->d.sign->contents->d.data;
  627.   		break;

crypto/pkcs7/pk7_lib.c:630:3: 
  628.   
  629.   		default:
  630. > 		os = NULL;
  631.   		break;
  632.   		}

crypto/pkcs7/pk7_lib.c:634:6: Taking true branch
  632.   		}
  633.   	
  634.   	if (os == NULL)
              ^
  635.   		return 0;
  636.   

crypto/pkcs7/pk7_lib.c:635:3: 
  633.   	
  634.   	if (os == NULL)
  635. > 		return 0;
  636.   
  637.   	os->flags |= ASN1_STRING_FLAG_NDEF;

crypto/pkcs7/pk7_lib.c:641:2: return from a call to PKCS7_stream
  639.   
  640.   	return 1;
  641.   	}
          ^
  642.   
  643.   

crypto/pkcs7/bio_pk7.c:124:2: 
122.   	PKCS7_stream(&boundary, p7);
123.   
124. > 	p7aux->p7 = p7;
125.   	p7aux->p7bio = p7bio;
126.   	p7aux->boundary = boundary;
