On Sat, Dec 12, 2020 at 02:25:03PM +0100, Jan Klemkow wrote:
> The type of the local variable hash in pf_map_addr() has right length
> but the wrong type. This diff uses the correct type and removes the
> useless casts. Both functions uses hash as pf_addr, so no cast is
> needed.
>
> OK?
OK bluhm@
> Index: net/pf_lb.c
> ===================================================================
> RCS file: /cvs/src/sys/net/pf_lb.c,v
> retrieving revision 1.67
> diff -u -p -r1.67 pf_lb.c
> --- net/pf_lb.c 29 Jul 2020 02:32:13 -0000 1.67
> +++ net/pf_lb.c 12 Dec 2020 13:06:49 -0000
> @@ -349,7 +349,7 @@ pf_map_addr(sa_family_t af, struct pf_ru
> struct pf_addr *naddr, struct pf_addr *init_addr, struct pf_src_node
> **sns,
> struct pf_pool *rpool, enum pf_sn_types type)
> {
> - unsigned char hash[16];
> + struct pf_addr hash;
> struct pf_addr faddr;
> struct pf_addr *raddr = &rpool->addr.v.a.addr;
> struct pf_addr *rmask = &rpool->addr.v.a.mask;
> @@ -460,8 +460,7 @@ pf_map_addr(sa_family_t af, struct pf_ru
> }
> break;
> case PF_POOL_SRCHASH:
> - hashidx =
> - pf_hash(saddr, (struct pf_addr *)&hash, &rpool->key, af);
> + hashidx = pf_hash(saddr, &hash, &rpool->key, af);
>
> if (rpool->addr.type == PF_ADDR_TABLE ||
> rpool->addr.type == PF_ADDR_DYNIFTL) {
> @@ -483,8 +482,7 @@ pf_map_addr(sa_family_t af, struct pf_ru
> return (1);
> pf_addrcpy(naddr, &rpool->counter, af);
> } else {
> - pf_poolmask(naddr, raddr, rmask,
> - (struct pf_addr *)&hash, af);
> + pf_poolmask(naddr, raddr, rmask, &hash, af);
> }
> break;
> case PF_POOL_ROUNDROBIN: