]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - sshdss.c
Tighten up a lot of casts from unsigned to int which are read by one
[PuTTY.git] / sshdss.c
index 6cf5830d5bc64994b2ab6ec0aae3d0118834a5b5..0484c44320a54803628e40ea04e25a1fbbab07b7 100644 (file)
--- a/sshdss.c
+++ b/sshdss.c
@@ -42,7 +42,9 @@ static void getstring(char **data, int *datalen, char **p, int *length)
     *p = NULL;
     if (*datalen < 4)
        return;
-    *length = GET_32BIT(*data);
+    *length = toint(GET_32BIT(*data));
+    if (*length < 0)
+        return;
     *datalen -= 4;
     *data += 4;
     if (*datalen < *length)
@@ -98,7 +100,7 @@ static void *dss_newkey(char *data, int len)
     }
 #endif
 
-    if (!p || memcmp(p, "ssh-dss", 7)) {
+    if (!p || slen != 7 || memcmp(p, "ssh-dss", 7)) {
        sfree(dss);
        return NULL;
     }