crypto/rsa/rsa_oaep.c:112: error: BUFFER_OVERRUN_L2
  Offset: [20, -20+max(40, `flen`)] Size: [-20+max(41, `flen`), `flen` - 20].
Showing all 8 steps of the trace


crypto/rsa/rsa_oaep.c:100:10: <Offset trace>
98.     
99.       MGF1(db, dblen, seed, SHA_DIGEST_LENGTH);
100.       for (i = 0; i < dblen; i++)
                ^
101.   	db[i] ^= maskeddb[i];
102.   

crypto/rsa/rsa_oaep.c:100:10: Assignment
98.     
99.       MGF1(db, dblen, seed, SHA_DIGEST_LENGTH);
100.       for (i = 0; i < dblen; i++)
                ^
101.   	db[i] ^= maskeddb[i];
102.   

crypto/rsa/rsa_oaep.c:71:1: <Length trace>
69.       }
70.   
71. > int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
72.   	     unsigned char *from, int flen, int num, unsigned char *param,
73.   	     int plen)

crypto/rsa/rsa_oaep.c:71:1: Parameter `flen`
69.       }
70.   
71. > int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
72.   	     unsigned char *from, int flen, int num, unsigned char *param,
73.   	     int plen)

crypto/rsa/rsa_oaep.c:85:5: Assignment
83.   	}
84.   
85.       dblen = flen - SHA_DIGEST_LENGTH;
          ^
86.       db = Malloc(dblen);
87.       if (db == NULL)

crypto/rsa/rsa_oaep.c:86:10: Array declaration
84.   
85.       dblen = flen - SHA_DIGEST_LENGTH;
86.       db = Malloc(dblen);
               ^
87.       if (db == NULL)
88.   	{

crypto/rsa/rsa_oaep.c:86:5: Assignment
84.   
85.       dblen = flen - SHA_DIGEST_LENGTH;
86.       db = Malloc(dblen);
          ^
87.       if (db == NULL)
88.   	{

crypto/rsa/rsa_oaep.c:112:6: Array access: Offset: [20, -20+max(40, flen)] Size: [-20+max(41, flen), flen - 20]
110.   	    if (db[i] != 0x00)
111.   		break;
112.   	if (db[i] != 0x01 || i++ >= dblen)
            ^
113.   	    RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP,
114.   		   RSA_R_OAEP_DECODING_ERROR);
