--- rsa_oaep.c	2009-06-26 16:14:12.000000000 -0700
+++ rsa_oaep.c_new	2010-07-30 09:22:39.499639300 -0700
@@ -200,17 +200,17 @@
 		cnt[1] = (unsigned char)((i >> 16) & 255);
 		cnt[2] = (unsigned char)((i >> 8)) & 255;
 		cnt[3] = (unsigned char)(i & 255);
-		EVP_DigestInit_ex(&c,dgst, NULL);
-		EVP_DigestUpdate(&c, seed, seedlen);
-		EVP_DigestUpdate(&c, cnt, 4);
+		if (!EVP_DigestInit_ex(&c,dgst, NULL)) return -1;
+		if (!EVP_DigestUpdate(&c, seed, seedlen)) return -1;
+		if (!EVP_DigestUpdate(&c, cnt, 4)) return -1;
 		if (outlen + mdlen <= len)
 			{
-			EVP_DigestFinal_ex(&c, mask + outlen, NULL);
+			if (!EVP_DigestFinal_ex(&c, mask + outlen, NULL)) return -1;
 			outlen += mdlen;
 			}
 		else
 			{
-			EVP_DigestFinal_ex(&c, md, NULL);
+			if (!EVP_DigestFinal_ex(&c, md, NULL)) return -1;
 			memcpy(mask + outlen, md, len - outlen);
 			outlen = len;
 			}
