aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce M Simpson <bms@FreeBSD.org>2004-06-16 05:41:00 +0000
committerBruce M Simpson <bms@FreeBSD.org>2004-06-16 05:41:00 +0000
commit34e3ccb34bdb16db646a614fdc570e1210b671e3 (patch)
treebf592caed9fb0bab85e1c90f9c915df5e15b9702
parent98c20d02c0eff7292b5fcd90b89d0a81632c8d12 (diff)
Notes
-rw-r--r--sys/netinet/udp_usrreq.c8
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);