ssl/statem/statem_clnt.c:3052: error: BUFFER_OVERRUN_L3
  Offset added: [1, 15] Size: [0, +oo] by call to `ssl_randbytes`.
Showing all 11 steps of the trace


ssl/statem/statem_clnt.c:3040:5: Assignment
3038.   
3039.       /* Otherwise, generate ephemeral key pair */
3040.       pmslen = 32;
            ^
3041.       pms = OPENSSL_malloc(pmslen);
3042.       if (pms == NULL) {

ssl/statem/statem_clnt.c:3052:12: Call
3050.            * TODO(size_t): Convert this function
3051.            */
3052.           || ssl_randbytes(s, pms, (int)pmslen) <= 0) {
                   ^
3053.           SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_CONSTRUCT_CKE_GOST,
3054.                    ERR_R_INTERNAL_ERROR);

ssl/ssl_lib.c:5172:1: Parameter `size`
  5170.   }
  5171.   
  5172. > int ssl_randbytes(SSL *s, unsigned char *rnd, size_t size)
  5173.   {
  5174.       if (s->drbg != NULL) {

ssl/ssl_lib.c:5187:17: Call
  5185.            * here.
  5186.            */
  5187.            return RAND_DRBG_generate(s->drbg, rnd, size, 0, NULL, 0);
                          ^
  5188.       }
  5189.       return RAND_bytes(rnd, (int)size);

crypto/rand/drbg_lib.c:363:1: Parameter `outlen`
    361.    *
    362.    */
    363. > int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen,
    364.                          int prediction_resistance,
    365.                          const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_lib.c:409:10: Call
    407.       }
    408.   
    409.       if (!ctr_generate(drbg, out, outlen, adin, adinlen)) {
                    ^
    410.           drbg->state = DRBG_ERROR;
    411.           RANDerr(RAND_F_RAND_DRBG_GENERATE, RAND_R_GENERATE_ERROR);

crypto/rand/drbg_rand.c:266:1: <Offset trace>
264.   }
265.   
266. > int ctr_generate(RAND_DRBG *drbg,
267.                    unsigned char *out, size_t outlen,
268.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:266:1: Parameter `outlen`
      264.   }
      265.   
      266. > int ctr_generate(RAND_DRBG *drbg,
      267.                    unsigned char *out, size_t outlen,
      268.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:266:1: <Length trace>
264.   }
265.   
266. > int ctr_generate(RAND_DRBG *drbg,
267.                    unsigned char *out, size_t outlen,
268.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:266:1: Parameter `drbg->ctr.K[*]`
      264.   }
      265.   
      266. > int ctr_generate(RAND_DRBG *drbg,
      267.                    unsigned char *out, size_t outlen,
      268.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:288:13: Array access: Offset added: [1, 15] Size: [0, +oo] by call to `ssl_randbytes` 
      286.               /* Use K as temp space as it will be updated */
      287.               AES_encrypt(ctr->V, ctr->K, &ctr->ks);
      288.               memcpy(out, ctr->K, outlen);
                         ^
      289.               break;
      290.           }
