diff options
| author | Bruce M Simpson <bms@FreeBSD.org> | 2004-06-16 05:41:00 +0000 |
|---|---|---|
| committer | Bruce M Simpson <bms@FreeBSD.org> | 2004-06-16 05:41:00 +0000 |
| commit | 34e3ccb34bdb16db646a614fdc570e1210b671e3 (patch) | |
| tree | bf592caed9fb0bab85e1c90f9c915df5e15b9702 | |
| parent | 98c20d02c0eff7292b5fcd90b89d0a81632c8d12 (diff) | |
Notes
| -rw-r--r-- | sys/netinet/udp_usrreq.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 9c541dba85244..47d12f852b2cc 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -837,7 +837,7 @@ udp_output(inp, m, addr, control, td) M_PREPEND(m, sizeof(struct udpiphdr), M_DONTWAIT); if (m == 0) { error = ENOBUFS; - goto release; + goto disconnect; } /* @@ -879,6 +879,12 @@ udp_output(inp, m, addr, control, td) inp->inp_moptions, inp); return (error); +disconnect: + if (addr) { + in_pcbdisconnect(inp); + inp->inp_laddr = laddr; + } + release: m_freem(m); return (error); |
