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],