diff options
author | ru <ru@FreeBSD.org> | 2004-01-18 14:02:53 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2004-01-18 14:02:53 +0000 |
commit | c0ac883f96e6ec66ff76a176833a3947dec6a6d1 (patch) | |
tree | 540afad4724fc59fefd58341bae511fe725cb615 | |
parent | 13fe9dd8f85c3a2171494ef219fcb3bdd9a3c159 (diff) | |
download | FreeBSD-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.c | 1 |
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; } |