]> The Tcpdump Group git mirrors - libpcap/commitdiff
Don't crash if "wlan addr{1,2,3,4}" are used without 802.11 headers.
authorGuy Harris <[email protected]>
Sat, 3 Jul 2010 17:58:48 +0000 (10:58 -0700)
committerGuy Harris <[email protected]>
Sat, 3 Jul 2010 17:58:48 +0000 (10:58 -0700)
gencode.c

index 08bb57b2cd061f66a3d1acc394d15f2e7b378bd6..75c650f8cd9fc8d17b07e59055c72b2d31a7ba5c 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -3785,6 +3785,22 @@ gen_ehostop(eaddr, dir)
                b1 = gen_ehostop(eaddr, Q_DST);
                gen_or(b0, b1);
                return b1;
+
+       case Q_ADDR1:
+               bpf_error("'addr1' is only supported on 802.11 with 802.11 headers");
+               break;
+
+       case Q_ADDR2:
+               bpf_error("'addr2' is only supported on 802.11 with 802.11 headers");
+               break;
+
+       case Q_ADDR3:
+               bpf_error("'addr3' is only supported on 802.11 with 802.11 headers");
+               break;
+
+       case Q_ADDR4:
+               bpf_error("'addr4' is only supported on 802.11 with 802.11 headers");
+               break;
        }
        abort();
        /* NOTREACHED */
@@ -3827,6 +3843,22 @@ gen_fhostop(eaddr, dir)
                b1 = gen_fhostop(eaddr, Q_DST);
                gen_or(b0, b1);
                return b1;
+
+       case Q_ADDR1:
+               bpf_error("'addr1' is only supported on 802.11");
+               break;
+
+       case Q_ADDR2:
+               bpf_error("'addr2' is only supported on 802.11");
+               break;
+
+       case Q_ADDR3:
+               bpf_error("'addr3' is only supported on 802.11");
+               break;
+
+       case Q_ADDR4:
+               bpf_error("'addr4' is only supported on 802.11");
+               break;
        }
        abort();
        /* NOTREACHED */
@@ -3861,6 +3893,22 @@ gen_thostop(eaddr, dir)
                b1 = gen_thostop(eaddr, Q_DST);
                gen_or(b0, b1);
                return b1;
+
+       case Q_ADDR1:
+               bpf_error("'addr1' is only supported on 802.11");
+               break;
+
+       case Q_ADDR2:
+               bpf_error("'addr2' is only supported on 802.11");
+               break;
+
+       case Q_ADDR3:
+               bpf_error("'addr3' is only supported on 802.11");
+               break;
+
+       case Q_ADDR4:
+               bpf_error("'addr4' is only supported on 802.11");
+               break;
        }
        abort();
        /* NOTREACHED */
@@ -4251,6 +4299,22 @@ gen_ipfchostop(eaddr, dir)
                b1 = gen_ipfchostop(eaddr, Q_DST);
                gen_or(b0, b1);
                return b1;
+
+       case Q_ADDR1:
+               bpf_error("'addr1' is only supported on 802.11");
+               break;
+
+       case Q_ADDR2:
+               bpf_error("'addr2' is only supported on 802.11");
+               break;
+
+       case Q_ADDR3:
+               bpf_error("'addr3' is only supported on 802.11");
+               break;
+
+       case Q_ADDR4:
+               bpf_error("'addr4' is only supported on 802.11");
+               break;
        }
        abort();
        /* NOTREACHED */