]> The Tcpdump Group git mirrors - libpcap/commitdiff
Don't crash on, for example, "ip address1 127.0.0.1".
authorGuy Harris <[email protected]>
Tue, 13 Feb 2018 21:36:54 +0000 (13:36 -0800)
committerGuy Harris <[email protected]>
Tue, 13 Feb 2018 21:36:54 +0000 (13:36 -0800)
Also, "addressN" is an alias for "addrN"; mention both of them in error
messages.

gencode.c

index 766e9d1e8c25275e4357145c120647b7ef15b662..a39ce756280dff6e25b4b141f398ff81430b6396 100644 (file)
--- a/gencode.c
+++ b/gencode.c
@@ -3872,6 +3872,30 @@ gen_hostop(compiler_state_t *cstate, bpf_u_int32 addr, bpf_u_int32 mask,
                gen_or(b0, b1);
                return b1;
 
+       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();
        }
@@ -3913,6 +3937,30 @@ gen_hostop6(compiler_state_t *cstate, struct in6_addr *addr,
                gen_or(b0, b1);
                return b1;
 
+       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();
        }
@@ -3958,19 +4006,19 @@ gen_ehostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
                return b1;
 
        case Q_ADDR1:
-               bpf_error(cstate, "'addr1' is only supported on 802.11 with 802.11 headers");
+               bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11 with 802.11 headers");
                break;
 
        case Q_ADDR2:
-               bpf_error(cstate, "'addr2' is only supported on 802.11 with 802.11 headers");
+               bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11 with 802.11 headers");
                break;
 
        case Q_ADDR3:
-               bpf_error(cstate, "'addr3' is only supported on 802.11 with 802.11 headers");
+               bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11 with 802.11 headers");
                break;
 
        case Q_ADDR4:
-               bpf_error(cstate, "'addr4' is only supported on 802.11 with 802.11 headers");
+               bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11 with 802.11 headers");
                break;
 
        case Q_RA:
@@ -4014,19 +4062,19 @@ gen_fhostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
                return b1;
 
        case Q_ADDR1:
-               bpf_error(cstate, "'addr1' is only supported on 802.11");
+               bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11");
                break;
 
        case Q_ADDR2:
-               bpf_error(cstate, "'addr2' is only supported on 802.11");
+               bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11");
                break;
 
        case Q_ADDR3:
-               bpf_error(cstate, "'addr3' is only supported on 802.11");
+               bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11");
                break;
 
        case Q_ADDR4:
-               bpf_error(cstate, "'addr4' is only supported on 802.11");
+               bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11");
                break;
 
        case Q_RA:
@@ -4070,19 +4118,19 @@ gen_thostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
                return b1;
 
        case Q_ADDR1:
-               bpf_error(cstate, "'addr1' is only supported on 802.11");
+               bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11");
                break;
 
        case Q_ADDR2:
-               bpf_error(cstate, "'addr2' is only supported on 802.11");
+               bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11");
                break;
 
        case Q_ADDR3:
-               bpf_error(cstate, "'addr3' is only supported on 802.11");
+               bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11");
                break;
 
        case Q_ADDR4:
-               bpf_error(cstate, "'addr4' is only supported on 802.11");
+               bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11");
                break;
 
        case Q_RA:
@@ -4551,19 +4599,19 @@ gen_ipfchostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
                return b1;
 
        case Q_ADDR1:
-               bpf_error(cstate, "'addr1' is only supported on 802.11");
+               bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11");
                break;
 
        case Q_ADDR2:
-               bpf_error(cstate, "'addr2' is only supported on 802.11");
+               bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11");
                break;
 
        case Q_ADDR3:
-               bpf_error(cstate, "'addr3' is only supported on 802.11");
+               bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11");
                break;
 
        case Q_ADDR4:
-               bpf_error(cstate, "'addr4' is only supported on 802.11");
+               bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11");
                break;
 
        case Q_RA:
@@ -8055,19 +8103,19 @@ gen_ahostop(compiler_state_t *cstate, const u_char *eaddr, int dir)
                return b1;
 
        case Q_ADDR1:
-               bpf_error(cstate, "'addr1' is only supported on 802.11");
+               bpf_error(cstate, "'addr1' and 'address1' are only supported on 802.11");
                break;
 
        case Q_ADDR2:
-               bpf_error(cstate, "'addr2' is only supported on 802.11");
+               bpf_error(cstate, "'addr2' and 'address2' are only supported on 802.11");
                break;
 
        case Q_ADDR3:
-               bpf_error(cstate, "'addr3' is only supported on 802.11");
+               bpf_error(cstate, "'addr3' and 'address3' are only supported on 802.11");
                break;
 
        case Q_ADDR4:
-               bpf_error(cstate, "'addr4' is only supported on 802.11");
+               bpf_error(cstate, "'addr4' and 'address4' are only supported on 802.11");
                break;
 
        case Q_RA: