crypto/rsa/rsa_eay.c:314: error: BUFFER_OVERRUN_L3
  Offset: [17, +oo] (⇐ [18, +oo] + -1) Size: [0, +oo] by call to `RSA_padding_check_PKCS1_OAEP`.
Showing all 15 steps of the trace


crypto/rsa/rsa_eay.c:265:6: Call
263.   	if (ctx == NULL) goto err;
264.   
265.   	num=BN_num_bytes(rsa->n);
            ^
266.   
267.   	if ((buf=(unsigned char *)Malloc(num)) == NULL)

crypto/bn/bn_lib.c:245:19: Assignment
  243.   	bn_check_top(a);
  244.   
  245.   	if (a->top == 0) return(0);
                           ^
  246.   	l=a->d[a->top-1];
  247.   	i=(a->top-1)*BN_BITS2;

crypto/rsa/rsa_eay.c:265:2: Assignment
263.   	if (ctx == NULL) goto err;
264.   
265.   	num=BN_num_bytes(rsa->n);
        ^
266.   
267.   	if ((buf=(unsigned char *)Malloc(num)) == NULL)

crypto/rsa/rsa_eay.c:267:28: Array declaration
265.   	num=BN_num_bytes(rsa->n);
266.   
267.   	if ((buf=(unsigned char *)Malloc(num)) == NULL)
                                  ^
268.   		{
269.   		RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,ERR_R_MALLOC_FAILURE);

crypto/rsa/rsa_eay.c:267:7: Assignment
265.   	num=BN_num_bytes(rsa->n);
266.   
267.   	if ((buf=(unsigned char *)Malloc(num)) == NULL)
             ^
268.   		{
269.   		RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,ERR_R_MALLOC_FAILURE);

crypto/rsa/rsa_eay.c:314:12: Call
312.   		break;
313.           case RSA_PKCS1_OAEP_PADDING:
314.   	        r=RSA_padding_check_PKCS1_OAEP(to,num,buf,j,num,NULL,0);
                  ^
315.                   break;
316.    	case RSA_SSLV23_PADDING:

crypto/rsa/rsa_oaep.c:71:1: Parameter `*from`
  69.       }
  70.   
  71. > int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
  72.   	     unsigned char *from, int flen, int num, unsigned char *param,
  73.   	     int plen)

crypto/rsa/rsa_oaep.c:93:5: Assignment
  91.   	}
  92.   
  93.       maskeddb = from + SHA_DIGEST_LENGTH;
            ^
  94.       
  95.       MGF1(seed, SHA_DIGEST_LENGTH, maskeddb, dblen);

crypto/rsa/rsa_oaep.c:95:5: Call
  93.       maskeddb = from + SHA_DIGEST_LENGTH;
  94.       
  95.       MGF1(seed, SHA_DIGEST_LENGTH, maskeddb, dblen);
            ^
  96.       for (i = 0; i < SHA_DIGEST_LENGTH; i++)
  97.   	seed[i] ^= from[i];

crypto/rsa/rsa_oaep.c:131:1: Parameter `*seed`
    129.       }
    130.   
    131. > int MGF1(unsigned char *mask, long len, unsigned char *seed, long seedlen)
    132.       {
    133.       long i, outlen = 0;

crypto/rsa/rsa_oaep.c:143:2: Call
    141.   	  cnt[2] = (i >> 8) & 255, cnt[3] = i & 255;
    142.   	SHA1_Init(&c);
    143.   	SHA1_Update(&c, seed, seedlen);
            ^
    144.   	SHA1_Update(&c, cnt, 4);
    145.   	if (outlen + SHA_DIGEST_LENGTH <= len)

crypto/sha/sha1dgst.c:126:1: <Length trace>
124.   	}
125.   
126. > void SHA1_Update(SHA_CTX *c, register unsigned char *data,
127.   	     unsigned long len)
128.   	{

crypto/sha/sha1dgst.c:126:1: Parameter `*data`
      124.   	}
      125.   
      126. > void SHA1_Update(SHA_CTX *c, register unsigned char *data,
      127.   	     unsigned long len)
      128.   	{

crypto/sha/sha1dgst.c:253:2: Assignment
      251.   	for (sw=0; sw < ew; sw++)
      252.   		{ M_c2nl(data,l); p[sw]=l; }
      253.   	M_c2nl_p(data,l,ec);
              ^
      254.   	p[sw]=l;
      255.   	}

crypto/sha/sha1dgst.c:253:2: Array access: Offset: [17, +oo] (⇐ [18, +oo] + -1) Size: [0, +oo] by call to `RSA_padding_check_PKCS1_OAEP` 
      251.   	for (sw=0; sw < ew; sw++)
      252.   		{ M_c2nl(data,l); p[sw]=l; }
      253.   	M_c2nl_p(data,l,ec);
              ^
      254.   	p[sw]=l;
      255.   	}
