summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2004-01-18 14:02:53 +0000
committerru <ru@FreeBSD.org>2004-01-18 14:02:53 +0000
commitc0ac883f96e6ec66ff76a176833a3947dec6a6d1 (patch)
tree540afad4724fc59fefd58341bae511fe725cb615
parent13fe9dd8f85c3a2171494ef219fcb3bdd9a3c159 (diff)
downloadFreeBSD-src-c0ac883f96e6ec66ff76a176833a3947dec6a6d1.zip
FreeBSD-src-c0ac883f96e6ec66ff76a176833a3947dec6a6d1.tar.gz
Since "m" is not part of the "mp" chain, need to free() it.
Reported by: Stanford Metacompilation research group
-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 4b924d5..3ec3257 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1666,6 +1666,7 @@ soopt_getm(struct sockopt *sopt, struct mbuf **mp)
if (sopt_size > MLEN) {
MCLGET(m, sopt->sopt_td ? M_TRYWAIT : M_DONTWAIT);
if ((m->m_flags & M_EXT) == 0) {
+ m_freem(m);
m_freem(*mp);
return ENOBUFS;
}
OpenPOWER on IntegriCloud