move check to avoid memory leak.
authorUlf Möller <ulf@openssl.org>
Wed, 6 Jun 2001 17:23:23 +0000 (17:23 +0000)
committerUlf Möller <ulf@openssl.org>
Wed, 6 Jun 2001 17:23:23 +0000 (17:23 +0000)
crypto/rsa/rsa_oaep.c

index a3361dc3d76a6d6e197ba65bc99682d68a88c813..64b59ee1211ee20ebca9624ac6bbb5003f2a131e 100644 (file)
@@ -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];