engines/ccgost/gost2001_keyx.c:51: error: BUFFER_OVERRUN_L3
  Offset: [-10, +oo] Size: 64 by call to `store_bignum`.
Showing all 7 steps of the trace


engines/ccgost/gost2001_keyx.c:24:1: Array declaration
22.   
23.   /* Implementation of CryptoPro VKO 34.10-2001 algorithm */
24. > static int VKO_compute_key(unsigned char *shared_key,size_t shared_key_size,const EC_POINT *pub_key,EC_KEY *priv_key,const unsigned char *ukm)
25.   	{
26.   	unsigned char ukm_be[8],databuf[64],hashbuf[64];

engines/ccgost/gost2001_keyx.c:51:2: Call
49.   	/*Serialize elliptic curve point same way as we do it when saving
50.   	 * key */
51.   	store_bignum(Y,databuf,32);
       ^
52.   	store_bignum(X,databuf+32,32);
53.    	/* And reverse byte order of whole buffer */

engines/ccgost/gost_sign.c:314:1: Parameter `len`
  312.   /* Pack bignum into byte buffer of given size, filling all leading bytes
  313.    * by zeros */
  314. > int store_bignum(BIGNUM *bn, unsigned char *buf,int len)
  315.   	{
  316.   	int bytes = BN_num_bytes(bn);

engines/ccgost/gost_sign.c:319:2: Call
  317.   	if (bytes>len) return 0;
  318.   	memset(buf,0,len);
  319.   	BN_bn2bin(bn,buf+len-bytes);
          ^
  320.   	return 1;
  321.   	}	

crypto/bn/bn_lib.c:641:1: <Length trace>
639.   
640.   /* ignore negative */
641. > int BN_bn2bin(const BIGNUM *a, unsigned char *to)
642.   	{
643.   	int n,i;

crypto/bn/bn_lib.c:641:1: Parameter `*to`
    639.   
    640.   /* ignore negative */
    641. > int BN_bn2bin(const BIGNUM *a, unsigned char *to)
    642.   	{
    643.   	int n,i;

crypto/bn/bn_lib.c:651:3: Array access: Offset: [-10, +oo] Size: 64 by call to `store_bignum` 
    649.   		{
    650.   		l=a->d[i/BN_BYTES];
    651.   		*(to++)=(unsigned char)(l>>(8*(i%BN_BYTES)))&0xff;
             ^
    652.   		}
    653.   	return(n);
