From: Ulf Möller Date: Wed, 6 Jun 2001 17:23:23 +0000 (+0000) Subject: move check to avoid memory leak. X-Git-Tag: OpenSSL_0_9_6c~182^2~126 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8ca2ae775d418b44b0206788744ca0e5f5d9dc3d;p=oweals%2Fopenssl.git move check to avoid memory leak. --- diff --git a/crypto/rsa/rsa_oaep.c b/crypto/rsa/rsa_oaep.c index a3361dc3d7..64b59ee121 100644 --- a/crypto/rsa/rsa_oaep.c +++ b/crypto/rsa/rsa_oaep.c @@ -102,6 +102,14 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, return (-1); } + lzero = num - flen; + if (lzero < 0) + { + RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP, RSA_R_OAEP_DECODING_ERROR); + return (-1); + } + maskeddb = from - lzero + SHA_DIGEST_LENGTH; + dblen = num - SHA_DIGEST_LENGTH; db = OPENSSL_malloc(dblen); if (db == NULL) @@ -110,14 +118,6 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, return (-1); } - lzero = num - flen; - if (lzero < 0) - { - RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP, RSA_R_OAEP_DECODING_ERROR); - return (-1); - } - maskeddb = from - lzero + SHA_DIGEST_LENGTH; - MGF1(seed, SHA_DIGEST_LENGTH, maskeddb, dblen); for (i = lzero; i < SHA_DIGEST_LENGTH; i++) seed[i] ^= from[i - lzero];