--- print-isakmp.c.org	2004-01-19 21:48:06.000000000 +0000
+++ print-isakmp.c	2004-01-19 21:53:03.000000000 +0000
@@ -327,9 +327,14 @@
 	static u_char *p;
 	size_t i;
 
+	TCHECK2(*loc, len);
+
 	p = (u_char *)loc;
 	for (i = 0; i < len; i++)
 		printf("%02x", p[i] & 0xff);
+
+trunc:
+	return;
 }
 
 struct attrmap {
@@ -1111,6 +1116,8 @@
 	cp = (const u_char *)ext;
 
 	while (np) {
+		TCHECK2(*ext, sizeof(e));
+		
 		safememcpy(&e, ext, sizeof(e));
 
 		if (ep < (u_char *)ext + ntohs(e.len)) {
@@ -1136,6 +1143,9 @@
 		ext = (struct isakmp_gen *)cp;
 	}
 	return cp;
+
+trunc:
+	return NULL;
 }
 
 static char *
--- print-radius.c.org	2004-01-19 21:54:55.000000000 +0000
+++ print-radius.c	2004-01-19 21:55:48.000000000 +0000
@@ -467,7 +467,7 @@
         break;
    }
 
-   for (i=0; i < length ; i++, data++)
+   for (i=0; *data && i < length ; i++, data++)
        printf("%c",(*data < 32 || *data > 128) ? '.' : *data );
 
    printf("}");
