ssl/statem/statem_clnt.c:1762: error: BUFFER_OVERRUN_L3
  Offset: [-1, +oo] Size: 28 by call to `tls1_check_curve`.
Showing all 9 steps of the trace


ssl/statem/statem_clnt.c:1574:1: Parameter `*pkt->curr`
1572.   }
1573.   
1574. > MSG_PROCESS_RETURN tls_process_key_exchange(SSL *s, PACKET *pkt)
1575.   {
1576.       EVP_MD_CTX *md_ctx;

ssl/statem/statem_clnt.c:1762:14: Call
1760.            * invalid curve. ECParameters is 3 bytes.
1761.            */
1762.           if (!tls1_check_curve(s, ecparams, 3)) {
                     ^
1763.               SSLerr(SSL_F_TLS_PROCESS_KEY_EXCHANGE, SSL_R_WRONG_CURVE);
1764.               goto f_err;

ssl/t1_lib.c:263:1: Array declaration
  261.   
  262.   /* The default curves */
  263. > static const unsigned char eccurves_default[] = {
  264.       /* Prefer P-256 which has the fastest and most secure implementations. */
  265.       0, 23,                      /* secp256r1 (23) */

ssl/t1_lib.c:499:20: Call
  497.       for (i = 0; i < num_curves; i++, curves += 2) {
  498.           if (p[1] == curves[0] && p[2] == curves[1])
  499.               return tls_curve_allowed(s, p + 1, SSL_SECOP_CURVE_CHECK);
                            ^
  500.       }
  501.       return 0;

ssl/t1_lib.c:458:1: <Offset trace>
456.   
457.   /* See if curve is allowed by security callback */
458. > static int tls_curve_allowed(SSL *s, const unsigned char *curve, int op)
459.   {
460.       const tls_curve_info *cinfo;

ssl/t1_lib.c:458:1: Parameter `*curve`
    456.   
    457.   /* See if curve is allowed by security callback */
    458. > static int tls_curve_allowed(SSL *s, const unsigned char *curve, int op)
    459.   {
    460.       const tls_curve_info *cinfo;

ssl/t1_lib.c:225:1: <Length trace>
223.   # define TLS_CURVE_PRIME         0x0
224.   
225. > static const tls_curve_info nid_list[] = {
226.       {NID_sect163k1, 80, TLS_CURVE_CHAR2}, /* sect163k1 (1) */
227.       {NID_sect163r1, 80, TLS_CURVE_CHAR2}, /* sect163r1 (2) */

ssl/t1_lib.c:225:1: Array declaration
    223.   # define TLS_CURVE_PRIME         0x0
    224.   
    225. > static const tls_curve_info nid_list[] = {
    226.       {NID_sect163k1, 80, TLS_CURVE_CHAR2}, /* sect163k1 (1) */
    227.       {NID_sect163r1, 80, TLS_CURVE_CHAR2}, /* sect163r1 (2) */

ssl/t1_lib.c:465:5: Array access: Offset: [-1, +oo] Size: 28 by call to `tls1_check_curve` 
    463.       if ((curve[1] < 1) || ((size_t)curve[1] > OSSL_NELEM(nid_list)))
    464.           return 0;
    465.       cinfo = &nid_list[curve[1] - 1];
               ^
    466.   # ifdef OPENSSL_NO_EC2M
    467.       if (cinfo->flags & TLS_CURVE_CHAR2)
