ssl/statem/statem_clnt.c:3042: error: BUFFER_OVERRUN_L3
  Offset: 3 Size: [1, 118] by call to `ssl_log_rsa_client_key_exchange`.
Showing all 13 steps of the trace


ssl/statem/statem_clnt.c:2995:5: Assignment
2993.       }
2994.   
2995.       pmslen = SSL_MAX_MASTER_KEY_LENGTH;
            ^
2996.       pms = OPENSSL_malloc(pmslen);
2997.       if (pms == NULL) {

ssl/statem/statem_clnt.c:3042:10: Call
3040.   
3041.       /* Log the premaster secret, if logging is enabled. */
3042.       if (!ssl_log_rsa_client_key_exchange(s, encdata, enclen, pms, pmslen)) {
                 ^
3043.           /* SSLfatal() already called */
3044.           goto err;

ssl/ssl_lib.c:5148:1: Parameter `premaster_len`
  5146.   }
  5147.   
  5148. > int ssl_log_rsa_client_key_exchange(SSL *ssl,
  5149.                                       const uint8_t *encrypted_premaster,
  5150.                                       size_t encrypted_premaster_len,

ssl/ssl_lib.c:5161:12: Call
  5159.   
  5160.       /* We only want the first 8 bytes of the encrypted premaster as a tag. */
  5161.       return nss_keylog_int("RSA",
                     ^
  5162.                             ssl,
  5163.                             encrypted_premaster,

ssl/ssl_lib.c:5094:1: <Offset trace>
5092.   }
5093.   
5094. > static int nss_keylog_int(const char *prefix,
5095.                             SSL *ssl,
5096.                             const uint8_t *parameter_1,

ssl/ssl_lib.c:5094:1: Parameter `prefix->strlen`
    5092.   }
    5093.   
    5094. > static int nss_keylog_int(const char *prefix,
    5095.                             SSL *ssl,
    5096.                             const uint8_t *parameter_1,

ssl/ssl_lib.c:5094:1: <Length trace>
5092.   }
5093.   
5094. > static int nss_keylog_int(const char *prefix,
5095.                             SSL *ssl,
5096.                             const uint8_t *parameter_1,

ssl/ssl_lib.c:5094:1: Parameter `parameter_2_len`
    5092.   }
    5093.   
    5094. > static int nss_keylog_int(const char *prefix,
    5095.                             SSL *ssl,
    5096.                             const uint8_t *parameter_1,

ssl/ssl_lib.c:5119:5: Assignment
    5117.        */
    5118.       prefix_len = strlen(prefix);
    5119.       out_len = prefix_len + (2 * parameter_1_len) + (2 * parameter_2_len) + 3;
                ^
    5120.       if ((out = cursor = OPENSSL_malloc(out_len)) == NULL) {
    5121.           SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, SSL_F_NSS_KEYLOG_INT,

ssl/ssl_lib.c:5120:25: Call
    5118.       prefix_len = strlen(prefix);
    5119.       out_len = prefix_len + (2 * parameter_1_len) + (2 * parameter_2_len) + 3;
    5120.       if ((out = cursor = OPENSSL_malloc(out_len)) == NULL) {
                                    ^
    5121.           SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, SSL_F_NSS_KEYLOG_INT,
    5122.                    ERR_R_MALLOC_FAILURE);

crypto/mem.c:201:9: Assignment
      199.   
      200.       if (num == 0)
      201.           return NULL;
                     ^
      202.   
      203.       FAILTEST();

ssl/ssl_lib.c:5120:16: Assignment
    5118.       prefix_len = strlen(prefix);
    5119.       out_len = prefix_len + (2 * parameter_1_len) + (2 * parameter_2_len) + 3;
    5120.       if ((out = cursor = OPENSSL_malloc(out_len)) == NULL) {
                           ^
    5121.           SSLfatal(ssl, SSL_AD_INTERNAL_ERROR, SSL_F_NSS_KEYLOG_INT,
    5122.                    ERR_R_MALLOC_FAILURE);

ssl/ssl_lib.c:5126:5: Array access: Offset: 3 Size: [1, 118] by call to `ssl_log_rsa_client_key_exchange` 
    5124.       }
    5125.   
    5126.       strcpy(cursor, prefix);
                ^
    5127.       cursor += prefix_len;
    5128.       *cursor++ = ' ';
