Page MenuHomeFreeBSD

D49152.id151562.diff
No OneTemporary

D49152.id151562.diff

diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -1182,23 +1182,12 @@
inp->inp_faddr = faddr;
inp->inp_fport = sin->sin_port;
- /* Do the initial binding of the local address if required. */
- if (inp->inp_laddr.s_addr == INADDR_ANY && inp->inp_lport == 0) {
- inp->inp_lport = lport;
- inp->inp_laddr = laddr;
- if (in_pcbinshash(inp) != 0) {
- inp->inp_laddr.s_addr = inp->inp_faddr.s_addr =
- INADDR_ANY;
- inp->inp_lport = inp->inp_fport = 0;
- return (EAGAIN);
- }
+ if ((inp->inp_flags & INP_INHASHLIST) != 0) {
+ MPASS(in_nullhost(inp->inp_laddr) || inp->inp_lport != 0);
+ in_pcbrehash(inp);
} else {
- inp->inp_lport = lport;
- inp->inp_laddr = laddr;
- if ((inp->inp_flags & INP_INHASHLIST) != 0)
- in_pcbrehash(inp);
- else
- in_pcbinshash(inp);
+ error = in_pcbinshash(inp);
+ MPASS(error == 0);
}
#ifdef ROUTE_MPATH
if (CALC_FLOWID_OUTBOUND) {

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 24, 4:47 AM (1 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32060767
Default Alt Text
D49152.id151562.diff (964 B)

Event Timeline