summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-08 11:43:10 +0200
committerGedare Bloom <gedare@rtems.org>2014-11-22 09:33:12 -0500
commitd1d31a5f6114ff73b11cf67bb6a09b3df0d8748c (patch)
tree28a02f851a8c31cf925fb1f4a2e7fb6604f9965b
parentb47dffc510f8e5460ac6aecad8ca84b54e9e7d64 (diff)
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 1d91266b4d..9b2ca26f7a 100644
--- a/cpukit/libnetworking/net/ppp_tty.c
+++ b/cpukit/libnetworking/net/ppp_tty.c
@@ -708,14 +708,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;
}