diff options
author | brian <brian@FreeBSD.org> | 2000-06-20 09:13:25 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2000-06-20 09:13:25 +0000 |
commit | be62e8bf23fef4532e2a5ea4dc041841a0c59e6b (patch) | |
tree | bd00f32b477f4ed5fbd96ef5b2c3f697838b1af1 /usr.sbin/ppp | |
parent | 9fb7b9e4e4f33b4efe84eec0bd3237753418a839 (diff) | |
download | FreeBSD-src-be62e8bf23fef4532e2a5ea4dc041841a0c59e6b.zip FreeBSD-src-be62e8bf23fef4532e2a5ea4dc041841a0c59e6b.tar.gz |
Allow padding in LQR ECHO requests
Problem found by: Tomaz Borstnar <tomaz.borstnar@over.net>
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r-- | usr.sbin/ppp/lqr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/ppp/lqr.c b/usr.sbin/ppp/lqr.c index 3e9f0f6..dad0e46 100644 --- a/usr.sbin/ppp/lqr.c +++ b/usr.sbin/ppp/lqr.c @@ -85,8 +85,9 @@ lqr_RecvEcho(struct fsm *fp, struct mbuf *bp) struct lcp *lcp = fsm2lcp(fp); struct echolqr lqr; - if (m_length(bp) == sizeof lqr) { - bp = mbuf_Read(bp, &lqr, sizeof lqr); + if (m_length(bp) >= sizeof lqr) { + m_freem(mbuf_Read(bp, &lqr, sizeof lqr)); + bp = NULL; lqr.magic = ntohl(lqr.magic); lqr.signature = ntohl(lqr.signature); lqr.sequence = ntohl(lqr.sequence); |