crypto/rsa/rsa_ossl.c:597: error: BUFFER_OVERRUN_L3
  Offset: [-8, +oo] (⇐ [1, +oo] + -9) Size: [1, +oo] by call to `RSA_padding_check_SSLv23`.
Showing all 14 steps of the trace


crypto/rsa/rsa_ossl.c:502:11: Call
500.       f = BN_CTX_get(ctx);
501.       ret = BN_CTX_get(ctx);
502.       num = BN_num_bytes(rsa->n);
                 ^
503.       buf = OPENSSL_malloc(num);
504.       if (f == NULL || ret == NULL || buf == NULL) {

crypto/bn/bn_lib.c:221:9: Assignment
  219.   
  220.       if (BN_is_zero(a))
  221.           return 0;
                 ^
  222.       return ((i * BN_BITS2) + BN_num_bits_word(a->d[i]));
  223.   }

crypto/rsa/rsa_ossl.c:502:5: Assignment
500.       f = BN_CTX_get(ctx);
501.       ret = BN_CTX_get(ctx);
502.       num = BN_num_bytes(rsa->n);
           ^
503.       buf = OPENSSL_malloc(num);
504.       if (f == NULL || ret == NULL || buf == NULL) {

crypto/rsa/rsa_ossl.c:503:11: Call
501.       ret = BN_CTX_get(ctx);
502.       num = BN_num_bytes(rsa->n);
503.       buf = OPENSSL_malloc(num);
                 ^
504.       if (f == NULL || ret == NULL || buf == NULL) {
505.           RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, ERR_R_MALLOC_FAILURE);

crypto/mem.c:125:9: Assignment
  123.   
  124.       if (num <= 0)
  125.           return NULL;
                 ^
  126.   
  127.       allow_customize = 0;

crypto/rsa/rsa_ossl.c:503:5: Assignment
501.       ret = BN_CTX_get(ctx);
502.       num = BN_num_bytes(rsa->n);
503.       buf = OPENSSL_malloc(num);
           ^
504.       if (f == NULL || ret == NULL || buf == NULL) {
505.           RSAerr(RSA_F_RSA_OSSL_PRIVATE_DECRYPT, ERR_R_MALLOC_FAILURE);

crypto/rsa/rsa_ossl.c:597:13: Call
595.           break;
596.       case RSA_SSLV23_PADDING:
597.           r = RSA_padding_check_SSLv23(to, num, buf, j, num);
                   ^
598.           break;
599.       case RSA_NO_PADDING:

crypto/rsa/rsa_ssl.c:131:10: <Offset trace>
129.           return (-1);
130.       }
131.       for (k = -9; k < -1; k++) {
                ^
132.           if (p[k] != 0x03)
133.               break;

crypto/rsa/rsa_ssl.c:131:10: Assignment
  129.           return (-1);
  130.       }
  131.       for (k = -9; k < -1; k++) {
                  ^
  132.           if (p[k] != 0x03)
  133.               break;

crypto/rsa/rsa_ssl.c:104:1: <Length trace>
102.   }
103.   
104. > int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
105.                                const unsigned char *from, int flen, int num)
106.   {

crypto/rsa/rsa_ssl.c:104:1: Parameter `*from`
  102.   }
  103.   
  104. > int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
  105.                                const unsigned char *from, int flen, int num)
  106.   {

crypto/rsa/rsa_ssl.c:110:5: Assignment
  108.       const unsigned char *p;
  109.   
  110.       p = from;
             ^
  111.       if (flen < 10) {
  112.           RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_DATA_TOO_SMALL);

crypto/rsa/rsa_ssl.c:115:35: Assignment
  113.           return (-1);
  114.       }
  115.       if ((num != (flen + 1)) || (*(p++) != 02)) {
                                           ^
  116.           RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23, RSA_R_BLOCK_TYPE_IS_NOT_02);
  117.           return (-1);

crypto/rsa/rsa_ssl.c:132:13: Array access: Offset: [-8, +oo] (⇐ [1, +oo] + -9) Size: [1, +oo] by call to `RSA_padding_check_SSLv23` 
  130.       }
  131.       for (k = -9; k < -1; k++) {
  132.           if (p[k] != 0x03)
                     ^
  133.               break;
  134.       }
