git: a6a98453d8c9 - main - pf: Don't convert arc4random() to host byte order
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 16 Apr 2025 18:02:51 UTC
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=a6a98453d8c9169a0859c48e2893df3f6ffe84cf commit a6a98453d8c9169a0859c48e2893df3f6ffe84cf Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2025-04-15 15:29:17 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2025-04-16 14:23:47 +0000 pf: Don't convert arc4random() to host byte order There's no need to convert values returned by arc4random to the network byte order. Spotted by Gleb Smirnoff (glebius@FreeBSD.org), thanks! ok tedu Obtained from: OpenBSD, mikeb <mikeb@openbsd.org>, 367b0410d3 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf.c | 4 ++-- sys/netpfil/pf/pf_lb.c | 10 +++++----- sys/netpfil/pf/pf_norm.c | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index d4288ba34eb4..b6525b229c48 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6257,7 +6257,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a, TH_SYN && r->keep_state == PF_STATE_SYNPROXY) { pf_set_protostate(s, PF_PEER_SRC, PF_TCPS_PROXY_SRC); pf_undo_nat(nr, pd, bip_sum); - s->src.seqhi = htonl(arc4random()); + s->src.seqhi = arc4random(); /* Find mss option */ int rtid = M_GETFIB(pd->m); mss = pf_get_mss(pd); @@ -6869,7 +6869,7 @@ pf_synproxy(struct pf_pdesc *pd, struct pf_kstate *state, u_short *reason) } state->src.max_win = MAX(ntohs(th->th_win), 1); if (state->dst.seqhi == 1) - state->dst.seqhi = htonl(arc4random()); + state->dst.seqhi = arc4random(); pf_send_tcp(state->rule, pd->af, &sk->addr[pd->sidx], &sk->addr[pd->didx], sk->port[pd->sidx], sk->port[pd->didx], diff --git a/sys/netpfil/pf/pf_lb.c b/sys/netpfil/pf/pf_lb.c index 54a9463e34ef..9785611271a0 100644 --- a/sys/netpfil/pf/pf_lb.c +++ b/sys/netpfil/pf/pf_lb.c @@ -551,29 +551,29 @@ pf_map_addr(sa_family_t af, struct pf_krule *r, struct pf_addr *saddr, switch (af) { #ifdef INET case AF_INET: - rpool->counter.addr32[0] = htonl(arc4random()); + rpool->counter.addr32[0] = arc4random(); break; #endif /* INET */ #ifdef INET6 case AF_INET6: if (rmask->addr32[3] != 0xffffffff) rpool->counter.addr32[3] = - htonl(arc4random()); + arc4random(); else break; if (rmask->addr32[2] != 0xffffffff) rpool->counter.addr32[2] = - htonl(arc4random()); + arc4random(); else break; if (rmask->addr32[1] != 0xffffffff) rpool->counter.addr32[1] = - htonl(arc4random()); + arc4random(); else break; if (rmask->addr32[0] != 0xffffffff) rpool->counter.addr32[0] = - htonl(arc4random()); + arc4random(); break; #endif /* INET6 */ } diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index 2dc4553bd4f4..1bf672f39204 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -1493,7 +1493,7 @@ pf_normalize_tcp_init(struct pf_pdesc *pd, struct tcphdr *th, src->scrub->pfss_flags |= PFSS_TIMESTAMP; src->scrub->pfss_ts_mod = - htonl(arc4random()); + arc4random(); /* note PFSS_PAWS not set yet */ memcpy(&tsval, &opt[2],