Commit 8ca2ae77 authored by Ulf Möller's avatar Ulf Möller
Browse files

move check to avoid memory leak.

parent ee8aa821
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -102,14 +102,6 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
	return (-1);
	}

    dblen = num - SHA_DIGEST_LENGTH;
    db = OPENSSL_malloc(dblen);
    if (db == NULL)
	{
	RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP, ERR_R_MALLOC_FAILURE);
	return (-1);
	}

    lzero = num - flen;
    if (lzero < 0)
	{
@@ -118,6 +110,14 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
	}
    maskeddb = from - lzero + SHA_DIGEST_LENGTH;
    
    dblen = num - SHA_DIGEST_LENGTH;
    db = OPENSSL_malloc(dblen);
    if (db == NULL)
	{
	RSAerr(RSA_F_RSA_PADDING_ADD_PKCS1_OAEP, ERR_R_MALLOC_FAILURE);
	return (-1);
	}

    MGF1(seed, SHA_DIGEST_LENGTH, maskeddb, dblen);
    for (i = lzero; i < SHA_DIGEST_LENGTH; i++)
	seed[i] ^= from[i - lzero];