From c6fb4eb56c839a3f04b51181992ba14b05d57bd2 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sat, 6 May 2023 15:50:41 -0700 Subject: compiler: remove unneeded argument from gen_mcode6(). We don't support " mask ", so no need to pass an argument. --- gencode.c | 15 ++++++--------- gencode.h | 4 ++-- grammar.y.in | 4 ++-- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/gencode.c b/gencode.c index f6a2cac2..138ed3ac 100644 --- a/gencode.c +++ b/gencode.c @@ -7188,8 +7188,8 @@ gen_ncode(compiler_state_t *cstate, const char *s, bpf_u_int32 v, struct qual q) #ifdef INET6 struct block * -gen_mcode6(compiler_state_t *cstate, const char *s1, const char *s2, - bpf_u_int32 masklen, struct qual q) +gen_mcode6(compiler_state_t *cstate, const char *s, bpf_u_int32 masklen, + struct qual q) { struct addrinfo *res; struct in6_addr *addr; @@ -7204,15 +7204,12 @@ gen_mcode6(compiler_state_t *cstate, const char *s1, const char *s2, if (setjmp(cstate->top_ctx)) return (NULL); - if (s2) - bpf_error(cstate, "no mask %s supported", s2); - - res = pcap_nametoaddrinfo(s1); + res = pcap_nametoaddrinfo(s); if (!res) - bpf_error(cstate, "invalid ip6 address %s", s1); + bpf_error(cstate, "invalid ip6 address %s", s); cstate->ai = res; if (res->ai_next) - bpf_error(cstate, "%s resolved to multiple address", s1); + bpf_error(cstate, "%s resolved to multiple address", s); addr = &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; if (masklen > sizeof(mask.s6_addr) * 8) @@ -7228,7 +7225,7 @@ gen_mcode6(compiler_state_t *cstate, const char *s1, const char *s2, memcpy(m, &mask, sizeof(m)); if ((a[0] & ~m[0]) || (a[1] & ~m[1]) || (a[2] & ~m[2]) || (a[3] & ~m[3])) { - bpf_error(cstate, "non-network bits set in \"%s/%d\"", s1, masklen); + bpf_error(cstate, "non-network bits set in \"%s/%d\"", s, masklen); } switch (q.addr) { diff --git a/gencode.h b/gencode.h index 93ca5216..b8296ab2 100644 --- a/gencode.h +++ b/gencode.h @@ -327,8 +327,8 @@ struct block *gen_acode(compiler_state_t *, const char *, struct qual); struct block *gen_mcode(compiler_state_t *, const char *, const char *, bpf_u_int32, struct qual); #ifdef INET6 -struct block *gen_mcode6(compiler_state_t *, const char *, const char *, - bpf_u_int32, struct qual); +struct block *gen_mcode6(compiler_state_t *, const char *, bpf_u_int32, + struct qual); #endif struct block *gen_ncode(compiler_state_t *, const char *, bpf_u_int32, struct qual); diff --git a/grammar.y.in b/grammar.y.in index 2360d3c7..b8dabf7e 100644 --- a/grammar.y.in +++ b/grammar.y.in @@ -472,7 +472,7 @@ nid: ID { CHECK_PTR_VAL($1); CHECK_PTR_VAL(($$.b = gen_scode(cstate, $1, $$. | HID6 '/' NUM { CHECK_PTR_VAL($1); #ifdef INET6 - CHECK_PTR_VAL(($$.b = gen_mcode6(cstate, $1, NULL, $3, + CHECK_PTR_VAL(($$.b = gen_mcode6(cstate, $1, $3, $$.q = $0.q))); #else bpf_set_error(cstate, "'ip6addr/prefixlen' not supported " @@ -483,7 +483,7 @@ nid: ID { CHECK_PTR_VAL($1); CHECK_PTR_VAL(($$.b = gen_scode(cstate, $1, $$. | HID6 { CHECK_PTR_VAL($1); #ifdef INET6 - CHECK_PTR_VAL(($$.b = gen_mcode6(cstate, $1, 0, 128, + CHECK_PTR_VAL(($$.b = gen_mcode6(cstate, $1, 128, $$.q = $0.q))); #else bpf_set_error(cstate, "'ip6addr' not supported " -- cgit v1.2.1