diff options
| author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-07-04 11:29:55 +0000 |
|---|---|---|
| committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2001-07-04 11:29:55 +0000 |
| commit | 033110569e60a64364d1392d2909a799e6b6bc5c (patch) | |
| tree | 28671837f1738a267e6a55bcd7ad7918e427fdf5 | |
| parent | 554bf4aa8609fa403a3e7aee1b0875d0e2a3740a (diff) | |
Notes
| -rw-r--r-- | sys/net/rtsock.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 6588f564dd86..67c79b6c3407 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -483,13 +483,19 @@ flush: } if (rtm) { m_copyback(m, 0, rtm->rtm_msglen, (caddr_t)rtm); + if (m->m_pkthdr.len < rtm->rtm_msglen) { + m_freem(m); + m = NULL; + } else if (m->m_pkthdr.len > rtm->rtm_msglen) + m_adj(m, rtm->rtm_msglen - m->m_pkthdr.len); Free(rtm); } if (rp) rp->rcb_proto.sp_family = 0; /* Avoid us */ if (dst) route_proto.sp_protocol = dst->sa_family; - raw_input(m, &route_proto, &route_src, &route_dst); + if (m) + raw_input(m, &route_proto, &route_src, &route_dst); if (rp) rp->rcb_proto.sp_family = PF_ROUTE; } |
