]> The Tcpdump Group git mirrors - libpcap/commitdiff
Add checks for invalid "direction" qualifiers for "decnet".
authorGuy Harris <[email protected]>
Mon, 22 Oct 2018 08:39:55 +0000 (01:39 -0700)
committerGuy Harris <[email protected]>
Mon, 22 Oct 2018 08:39:55 +0000 (01:39 -0700)
Various 802.11 address qualifiers work only for 802.11 MAC addresses;
give errors when they're used for DECNET addresses.

Q_ISO isn't a direction qualifier; we don't need to test for it -
"decnet iso XXX" is rejected as being syntactically invalid.

Credit to OSS-Fuzz for finding the abort issue.

gencode.c

index 33d81d825f276ede1b6665b5c5f580f1c6c16d5b..15cb93473deb568d15f0aad75bbf10d2d6e9b7dd 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -4718,8 +4718,29 @@ gen_dnhostop(compiler_state_t *cstate, bpf_u_int32 addr, int dir)
                gen_or(b0, b1);
                return b1;
 
-       case Q_ISO:
-               bpf_error(cstate, "ISO host filtering not implemented");
+       case Q_ADDR1:
+               bpf_error(cstate, "'addr1' and 'address1' are not valid qualifiers for addresses other than 802.11 MAC addresses");
+               break;
+
+       case Q_ADDR2:
+               bpf_error(cstate, "'addr2' and 'address2' are not valid qualifiers for addresses other than 802.11 MAC addresses");
+               break;
+
+       case Q_ADDR3:
+               bpf_error(cstate, "'addr3' and 'address3' are not valid qualifiers for addresses other than 802.11 MAC addresses");
+               break;
+
+       case Q_ADDR4:
+               bpf_error(cstate, "'addr4' and 'address4' are not valid qualifiers for addresses other than 802.11 MAC addresses");
+               break;
+
+       case Q_RA:
+               bpf_error(cstate, "'ra' is not a valid qualifier for addresses other than 802.11 MAC addresses");
+               break;
+
+       case Q_TA:
+               bpf_error(cstate, "'ta' is not a valid qualifier for addresses other than 802.11 MAC addresses");
+               break;
 
        default:
                abort();