summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-08 11:43:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-08 11:55:15 +0200
commit3e1bf786bd8378fce9d37e1c5ab172625f05f015 (patch)
tree837c07c2d79940f77c881bac00b9dd687c5c160b
parentIMFS: Avoid NULL pointer access (diff)
downloadrtems-3e1bf786bd8378fce9d37e1c5ab172625f05f015.tar.bz2
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.
-rw-r--r--cpukit/libnetworking/net/ppp_tty.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/cpukit/libnetworking/net/ppp_tty.c b/cpukit/libnetworking/net/ppp_tty.c
index 10510488f8..45fb499af9 100644
--- a/cpukit/libnetworking/net/ppp_tty.c
+++ b/cpukit/libnetworking/net/ppp_tty.c
@@ -716,14 +716,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;
}