diff options
author | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2024-01-27 21:13:47 +0000 |
---|---|---|
committer | Alexander Bluhm <bluhm@cvs.openbsd.org> | 2024-01-27 21:13:47 +0000 |
commit | 8a0fe2bd530f51675a95b73d96288074c22de5b3 (patch) | |
tree | cd0cf68108a807e676eb995b7f4d17bd6b671931 /sys/netinet/tcp_subr.c | |
parent | 64a301ca019038e15fff505d24bf21a1fc5a85cd (diff) |
Declare address parameter in TCP SYN cache const.
tcp6_ctlinput() casted a constant sockaddr_sin6 to non-const sockaddr.
sa6_src may be &sa6_any which lives in read-only data section.
Better pass down the const addresses to syn_cache_lookup(). They
are needed for hash lookup and are not modified.
OK mvs@
Diffstat (limited to 'sys/netinet/tcp_subr.c')
-rw-r--r-- | sys/netinet/tcp_subr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 6d65aa84948..8b5982a018e 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_subr.c,v 1.195 2024/01/11 13:49:49 bluhm Exp $ */ +/* $OpenBSD: tcp_subr.c,v 1.196 2024/01/27 21:13:46 bluhm Exp $ */ /* $NetBSD: tcp_subr.c,v 1.22 1996/02/13 23:44:00 christos Exp $ */ /* @@ -698,8 +698,8 @@ tcp6_ctlinput(int cmd, struct sockaddr *sa, u_int rdomain, void *d) } else if (inet6ctlerrmap[cmd] == EHOSTUNREACH || inet6ctlerrmap[cmd] == ENETUNREACH || inet6ctlerrmap[cmd] == EHOSTDOWN) - syn_cache_unreach((struct sockaddr *)sa6_src, - sa, &th, rdomain); + syn_cache_unreach(sin6tosa_const(sa6_src), sa, &th, + rdomain); in_pcbunref(inp); } else { in6_pcbnotify(&tcbtable, sa6, 0, |