]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
don't try parsing too short vendor IEs
authorJohannes Berg <johannes@sipsolutions.net>
Thu, 30 Apr 2009 16:49:44 +0000 (18:49 +0200)
committerJohannes Berg <johannes@sipsolutions.net>
Thu, 30 Apr 2009 16:49:44 +0000 (18:49 +0200)
scan.c

diff --git a/scan.c b/scan.c
index c78760c6bcf57ff6ebcac4d1d47027fe2428b2fb..548ce40ba038e5b01a33023af9648105c9da954f 100644 (file)
--- a/scan.c
+++ b/scan.c
@@ -93,14 +93,22 @@ static void print_vendor(unsigned char len, unsigned char *data,
 {
        int i;
 
+       if (len < 3) {
+               printf("\tVendor specific: <too short> data:\n");
+               for(i = 0; i < len; i++)
+                       printf(" %.02x", data[i]);
+               printf("\n");
+               return;
+       }
+
        /* currently _all_ vendor IEs are unknown (not parsed) */
        if (!params->unknown)
                return;
 
-       printf("\tVendor specific: OUI %.2x:%.2x:%.2x, data: ",
+       printf("\tVendor specific: OUI %.2x:%.2x:%.2x, data:",
                data[0], data[1], data[2]);
-       for (i=3; i<len; i++)
-               printf("\\x%.2x", data[i]);
+       for (i = 3; i < len; i++)
+               printf(" %.2x", data[i]);
        printf("\n");
 }