]> git.ozlabs.org Git - ppp.git/commitdiff
pppoe: Do not use %.*v and %.*B formats which are unsupported by C printf()
authorPali Rohár <pali@kernel.org>
Fri, 1 Jan 2021 15:39:52 +0000 (16:39 +0100)
committerPali Rohár <pali@kernel.org>
Mon, 4 Jan 2021 23:43:57 +0000 (00:43 +0100)
Signed-off-by: Pali Rohár <pali@kernel.org>
pppd/plugins/pppoe/common.c

index 9140ea90cbee2d8d2cda656157f8505b09ae8910..f57d9de3d0e31d95bd38ca25d835ad7388e3f559 100644 (file)
@@ -203,7 +203,7 @@ void pppoe_printpkt(PPPoEPacket *packet,
                    void (*printer)(void *, char *, ...), void *arg)
 {
     int len = ntohs(packet->length);
-    int i, tag, tlen, text;
+    int i, j, tag, tlen, text;
 
     switch (ntohs(packet->ethHdr.h_proto)) {
     case ETH_PPPOE_DISCOVERY:
@@ -300,12 +300,13 @@ void pppoe_printpkt(PPPoEPacket *packet,
        }
        if (tlen) {
            if (text)
-               printer(arg, " %.*v", tlen, &packet->payload[i]);
-           else if (tlen <= 32)
-               printer(arg, " %.*B", tlen, &packet->payload[i]);
-           else
-               printer(arg, " %.32B... (length %d)",
-                       &packet->payload[i], tlen);
+               printer(arg, " %.*s", tlen, &packet->payload[i]);
+           else {
+               for (j = 0; j < tlen && j < 32; j++)
+                   printer(arg, " %02x", (unsigned) *(&packet->payload[i]+j));
+               if (j < tlen)
+                   printer(arg, "... (length %d)", tlen);
+           }
        }
        printer(arg, "]");
     }