svn commit: r220585 - head/sys/rpc
Rick Macklem
rmacklem at FreeBSD.org
Wed Apr 13 00:03:50 UTC 2011
Author: rmacklem
Date: Wed Apr 13 00:03:49 2011
New Revision: 220585
URL: http://svn.freebsd.org/changeset/base/220585
Log:
Fix a couple of mbuf leaks introduced by r217242. I do
not believe that these leaks had a practical impact,
since the situations in which they would have occurred
would have been extremely rare.
MFC after: 2 weeks
Modified:
head/sys/rpc/clnt_dg.c
head/sys/rpc/clnt_vc.c
Modified: head/sys/rpc/clnt_dg.c
==============================================================================
--- head/sys/rpc/clnt_dg.c Tue Apr 12 23:49:07 2011 (r220584)
+++ head/sys/rpc/clnt_dg.c Wed Apr 13 00:03:49 2011 (r220585)
@@ -1086,11 +1086,13 @@ clnt_dg_soupcall(struct socket *so, void
/*
* The XID is in the first uint32_t of the reply.
*/
- if (m->m_len < sizeof(xid) && m_length(m, NULL) < sizeof(xid))
+ if (m->m_len < sizeof(xid) && m_length(m, NULL) < sizeof(xid)) {
/*
* Should never happen.
*/
+ m_freem(m);
continue;
+ }
m_copydata(m, 0, sizeof(xid), (char *)&xid);
xid = ntohl(xid);
Modified: head/sys/rpc/clnt_vc.c
==============================================================================
--- head/sys/rpc/clnt_vc.c Tue Apr 12 23:49:07 2011 (r220584)
+++ head/sys/rpc/clnt_vc.c Wed Apr 13 00:03:49 2011 (r220585)
@@ -973,8 +973,11 @@ clnt_vc_soupcall(struct socket *so, void
* the reply.
*/
if (ct->ct_record->m_len < sizeof(xid) &&
- m_length(ct->ct_record, NULL) < sizeof(xid))
+ m_length(ct->ct_record, NULL) <
+ sizeof(xid)) {
+ m_freem(ct->ct_record);
break;
+ }
m_copydata(ct->ct_record, 0, sizeof(xid),
(char *)&xid);
xid = ntohl(xid);
More information about the svn-src-all
mailing list