Add an assertion so that short-rsa2-key-crash at least avoids segfaulting
[u/mdw/putty] / sshrsa.c
index f684c2a..4f95fb3 100644 (file)
--- a/sshrsa.c
+++ b/sshrsa.c
@@ -54,7 +54,7 @@ int makekey(unsigned char *data, int len, struct RSAKey *result,
     }
 
     n = ssh1_read_bignum(p, len, result ? &result->modulus : NULL);
-    if (n < 0 || bignum_bitcount(result->modulus) == 0) return -1;
+    if (n < 0 || (result && bignum_bitcount(result->modulus) == 0)) return -1;
     if (result)
        result->bytes = n - 2;
     if (keystr)
@@ -802,6 +802,7 @@ static unsigned char *rsa2_sign(void *key, char *data, int datalen,
     SHA_Simple(data, datalen, hash);
 
     nbytes = (bignum_bitcount(rsa->modulus) - 1) / 8;
+    assert(1 <= nbytes - 20 - ASN1_LEN);
     bytes = snewn(nbytes, unsigned char);
 
     bytes[0] = 1;