aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2026-04-12 18:34:57 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2026-04-12 18:34:57 +0000
commitedece33b38ebcba46bd4d81382ebdb5a634a0c6d (patch)
tree7e8b5a27bad3eb40e64961a008d437708f777744 /sys/netinet
parent1d0ea3dfb9cbc26e77491bacef1cbc5d72e0375d (diff)
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/in_pcb.c1
-rw-r--r--sys/netinet/udp_usrreq.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index 29214fbd2cf6..7b294e0a92d5 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -1465,7 +1465,6 @@ in_pcbdisconnect(struct inpcb *inp)
if ((inp->inp_socket->so_proto->pr_flags & PR_CONNREQUIRED) == 0) {
/* See the comment in in_pcbinshash(). */
inp->inp_smr = smr_advance(inp->inp_pcbinfo->ipi_smr);
- inp->inp_laddr.s_addr = INADDR_ANY;
inp->inp_faddr.s_addr = INADDR_ANY;
inp->inp_fport = 0;
}
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index b973b299ca56..23b0ca684b09 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -1528,6 +1528,7 @@ udp_abort(struct socket *so)
INP_WLOCK(inp);
if (inp->inp_faddr.s_addr != INADDR_ANY) {
in_pcbdisconnect(inp);
+ inp->inp_laddr.s_addr = INADDR_ANY;
soisdisconnected(so);
}
INP_WUNLOCK(inp);
@@ -1630,6 +1631,7 @@ udp_close(struct socket *so)
INP_WLOCK(inp);
if (inp->inp_faddr.s_addr != INADDR_ANY) {
in_pcbdisconnect(inp);
+ inp->inp_laddr.s_addr = INADDR_ANY;
soisdisconnected(so);
}
INP_WUNLOCK(inp);
@@ -1697,6 +1699,7 @@ udp_disconnect(struct socket *so)
return (ENOTCONN);
}
in_pcbdisconnect(inp);
+ inp->inp_laddr.s_addr = INADDR_ANY;
SOCK_LOCK(so);
so->so_state &= ~SS_ISCONNECTED; /* XXX */
SOCK_UNLOCK(so);