crypto/pkcs12/p12_crt.c:154: error: BUFFER_OVERRUN_L3
  Offset: [0, 7] Size: [0, 8] by call to `PKCS12_set_mac`.
Showing all 13 steps of the trace


crypto/pkcs12/p12_crt.c:154:6: Call
152.   	sk_pop_free(safes, PKCS7_free);
153.   
154.   	if(!PKCS12_set_mac (p12, pass, -1, NULL, 0, mac_iter, NULL))
            ^
155.   	    return NULL;
156.   

crypto/pkcs12/p12_mutl.c:117:1: Parameter `saltlen`
  115.   /* Set a mac */
  116.   
  117. > int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen,
  118.   	     unsigned char *salt, int saltlen, int iter, EVP_MD *md_type)
  119.   {

crypto/pkcs12/p12_mutl.c:124:6: Call
  122.   
  123.   	if (!md_type) md_type = EVP_sha1();
  124.   	if (PKCS12_setup_mac (p12, iter, salt, saltlen, md_type) ==
              ^
  125.   				 	PKCS12_ERROR) {
  126.   		PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_SETUP_ERROR);

crypto/pkcs12/p12_mutl.c:141:1: Parameter `saltlen`
    139.   
    140.   /* Set up a mac structure */
    141. > int PKCS12_setup_mac (PKCS12 *p12, int iter, unsigned char *salt, int saltlen,
    142.   	     EVP_MD *md_type)
    143.   {

crypto/pkcs12/p12_mutl.c:153:2: Assignment
    151.   	}
    152.   	if (!saltlen) saltlen = PKCS12_SALT_LEN;
    153.   	p12->mac->salt->length = saltlen;
            ^
    154.   	if (!(p12->mac->salt->data = Malloc (saltlen))) {
    155.   		PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);

crypto/pkcs12/p12_mutl.c:129:7: Call
  127.   		return 0;
  128.   	}
  129.   	if (!PKCS12_gen_mac (p12, pass, passlen, mac, &maclen)) {
               ^
  130.   		PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_GENERATION_ERROR);
  131.   		return 0;

crypto/pkcs12/p12_mutl.c:66:1: Parameter `*p12->mac->iter->data`
    64.   
    65.   /* Generate a MAC */
    66. > int PKCS12_gen_mac (PKCS12 *p12, const char *pass, int passlen,
    67.   		    unsigned char *mac, unsigned int *maclen)
    68.   {

crypto/pkcs12/p12_mutl.c:76:14: Call
    74.   	saltlen = p12->mac->salt->length;
    75.   	if (!p12->mac->iter) iter = 1;
    76.   	else iter = ASN1_INTEGER_get (p12->mac->iter);
                       ^
    77.       	if(!(md_type =
    78.   		 EVP_get_digestbyobj (p12->mac->dinfo->algor->algorithm))) {

crypto/asn1/a_int.c:230:1: <Offset trace>
228.   	}
229.   
230. > long ASN1_INTEGER_get(ASN1_INTEGER *a)
231.   	{
232.   	int neg=0,i;

crypto/asn1/a_int.c:230:1: Parameter `a->length`
      228.   	}
      229.   
      230. > long ASN1_INTEGER_get(ASN1_INTEGER *a)
      231.   	{
      232.   	int neg=0,i;

crypto/asn1/a_int.c:230:1: <Length trace>
228.   	}
229.   
230. > long ASN1_INTEGER_get(ASN1_INTEGER *a)
231.   	{
232.   	int neg=0,i;

crypto/asn1/a_int.c:230:1: Parameter `*a->data`
      228.   	}
      229.   
      230. > long ASN1_INTEGER_get(ASN1_INTEGER *a)
      231.   	{
      232.   	int neg=0,i;

crypto/asn1/a_int.c:253:21: Array access: Offset: [0, 7] Size: [0, 8] by call to `PKCS12_set_mac` 
      251.   		{
      252.   		r<<=8;
      253.   		r|=(unsigned char)a->data[i];
                                 ^
      254.   		}
      255.   	if (neg) r= -r;
