From 797e9a8c7a52cd8f25c79328a35d5f364eda4838 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 8 Oct 2014 11:43:10 +0200 Subject: ppp: PR1943: Avoid NULL pointer access Waiting for mbufs at this level is a bad solution. It would be better to try to allocate a new mbuf chain before we hand over the current mbuf chain to the upper layer. In case the allocation fails we should drop the current packet and use its mbuf chain for a new packet. --- cpukit/libnetworking/net/ppp_tty.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/cpukit/libnetworking/net/ppp_tty.c b/cpukit/libnetworking/net/ppp_tty.c index 94d0a69552..0aa2c279ae 100644 --- a/cpukit/libnetworking/net/ppp_tty.c +++ b/cpukit/libnetworking/net/ppp_tty.c @@ -704,14 +704,8 @@ pppallocmbuf(struct ppp_softc *sc, struct mbuf **mp) m = *mp; if ( m == NULL ) { /* get mbuf header */ - MGETHDR(m, M_DONTWAIT, MT_DATA); - if ( m == NULL ) { - /* error - set condition to break out */ - printf("pppallocmbuf: MGETHDR failed\n"); - break; - } - MCLGET(m, M_DONTWAIT); - m->m_next = NULL; + MGETHDR(m, M_WAIT, MT_DATA); + MCLGET(m, M_WAIT); *mp = m; } -- cgit v1.2.3