Some radius decodes have unprintable characters. Use safeputs() to
escape them.

Test file showing the problem at
http://www.wand.net.nz/trac/libtrace/export/1746/trunk/test/traces/radius.pcap

OK?


Index: print-radius.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-radius.c,v
retrieving revision 1.8
diff -u -p -r1.8 print-radius.c
--- print-radius.c      23 May 2006 21:57:15 -0000      1.8
+++ print-radius.c      28 Jan 2012 12:03:33 -0000
@@ -218,7 +218,8 @@ static void r_print_string(int code, int
        memset(string, 0, 128);
        memcpy(string, data, len);
 
-       fprintf(stdout, " %s", string);
+       fprintf(stdout, " ");
+       safeputs(string);
 }
 
 static void r_print_hex(int code, int len, const u_char *data) {

Reply via email to