--- rsa.c.orig	Fri Mar 25 14:01:48 1994
+++ rsa.c	Mon Dec 13 13:10:28 1999
@@ -33,6 +33,9 @@
   unsigned char byte, pkcsBlock[MAX_RSA_MODULUS_LEN];
   unsigned int i, modulusLen;
   
+  if (publicKey->bits > MAX_RSA_MODULUS_BITS)
+    return (RE_LEN);
+
   modulusLen = (publicKey->bits + 7) / 8;
   if (inputLen + 11 > modulusLen)
     return (RE_LEN);
@@ -78,6 +81,9 @@
   unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
   unsigned int i, modulusLen, pkcsBlockLen;
   
+  if (publicKey->bits > MAX_RSA_MODULUS_BITS)
+    return (RE_LEN);
+
   modulusLen = (publicKey->bits + 7) / 8;
   if (inputLen > modulusLen)
     return (RE_LEN);
@@ -128,6 +134,9 @@
   int status;
   unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
   unsigned int i, modulusLen;
+
+  if (privateKey->bits > MAX_RSA_MODULUS_BITS)
+    return (RE_LEN);
   
   modulusLen = (privateKey->bits + 7) / 8;
   if (inputLen + 11 > modulusLen)
@@ -168,6 +177,9 @@
   unsigned char pkcsBlock[MAX_RSA_MODULUS_LEN];
   unsigned int i, modulusLen, pkcsBlockLen;
   
+  if (privateKey->bits > MAX_RSA_MODULUS_BITS)
+    return (RE_LEN);
+
   modulusLen = (privateKey->bits + 7) / 8;
   if (inputLen > modulusLen)
     return (RE_LEN);
