summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2013-03-29 13:57:55 +0000
committerglebius <glebius@FreeBSD.org>2013-03-29 13:57:55 +0000
commit1bccb6e916995784daf0c896715abbe3b4111b37 (patch)
treebedaca5c03f1b9c0933d34167038695db8c2f4d7
parentf412a6fab25bab864132725086efca3237e2c49a (diff)
downloadFreeBSD-src-1bccb6e916995784daf0c896715abbe3b4111b37.zip
FreeBSD-src-1bccb6e916995784daf0c896715abbe3b4111b37.tar.gz
When soreceive_generic() hands off an mbuf from buffer,
clear its pointer to next record, since next record belongs to the buffer, and shouldn't be leaked. The ng_ksocket(4) used to clear this pointer itself, but the correct place is here. Sponsored by: Nginx, Inc
-rw-r--r--sys/kern/uipc_socket.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index bce61e5..259a123 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1860,6 +1860,7 @@ dontblock:
nextrecord = m->m_nextpkt;
sbfree(&so->so_rcv, m);
if (mp != NULL) {
+ m->m_nextpkt = NULL;
*mp = m;
mp = &m->m_next;
so->so_rcv.sb_mb = m = m->m_next;
OpenPOWER on IntegriCloud