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


ssl/statem/statem_clnt.c:1041:14: Call
1039.           i = 1;
1040.   
1041.       if (i && ssl_fill_hello_random(s, 0, p, sizeof(s->s3->client_random),
                     ^
1042.                                      DOWNGRADE_NONE) <= 0)
1043.           return 0;

ssl/s3_lib.c:4202:1: Parameter `len`
  4200.    * failure, 1 on success.
  4201.    */
  4202. > int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, size_t len,
  4203.                             DOWNGRADE dgrd)
  4204.   {

ssl/s3_lib.c:4220:15: Call
  4218.           ret = ssl_randbytes(s, p, len - 4);
  4219.       } else {
  4220.           ret = ssl_randbytes(s, result, len);
                        ^
  4221.       }
  4222.   #ifndef OPENSSL_NO_TLS13DOWNGRADE

ssl/ssl_lib.c:5097:1: Parameter `size`
    5095.   }
    5096.   
    5097. > int ssl_randbytes(SSL *s, unsigned char *rnd, size_t size)
    5098.   {
    5099.       if (s->drbg != NULL)

ssl/ssl_lib.c:5100:16: Call
    5098.   {
    5099.       if (s->drbg != NULL)
    5100.           return RAND_DRBG_generate(s->drbg, rnd, size, 0, NULL, 0);
                           ^
    5101.       return RAND_bytes(rnd, (int)size);
    5102.   }

crypto/rand/drbg_lib.c:248:1: Parameter `outlen`
      246.    * sent in |adin| and |adinlen|.
      247.    */
      248. > int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen,
      249.                          int prediction_resistance,
      250.                          const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_lib.c:281:10: Call
      279.       }
      280.   
      281.       if (!ctr_generate(drbg, out, outlen, adin, adinlen)) {
                      ^
      282.           drbg->state = DRBG_ERROR;
      283.           RANDerr(RAND_F_RAND_DRBG_GENERATE, RAND_R_GENERATE_ERROR);

crypto/rand/drbg_rand.c:261:1: <Offset trace>
259.   }
260.   
261. > int ctr_generate(RAND_DRBG *drbg,
262.                    unsigned char *out, size_t outlen,
263.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:261:1: Parameter `outlen`
        259.   }
        260.   
        261. > int ctr_generate(RAND_DRBG *drbg,
        262.                    unsigned char *out, size_t outlen,
        263.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:261:1: <Length trace>
259.   }
260.   
261. > int ctr_generate(RAND_DRBG *drbg,
262.                    unsigned char *out, size_t outlen,
263.                    const unsigned char *adin, size_t adinlen)

crypto/rand/drbg_rand.c:261:1: Parameter `drbg->ctr.K[*]`
        259.   }
        260.   
        261. > int ctr_generate(RAND_DRBG *drbg,
        262.                    unsigned char *out, size_t outlen,
        263.                    const unsigned char *adin, size_t adinlen)

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