[rtems commit] ppp: PR1943: Avoid NULL pointer access
Sebastian Huber
sebh at rtems.org
Wed Oct 8 09:46:19 UTC 2014
Module: rtems
Branch: master
Commit: 3e1bf786bd8378fce9d37e1c5ab172625f05f015
Changeset: http://git.rtems.org/rtems/commit/?id=3e1bf786bd8378fce9d37e1c5ab172625f05f015
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Oct 8 11:43:10 2014 +0200
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 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/cpukit/libnetworking/net/ppp_tty.c b/cpukit/libnetworking/net/ppp_tty.c
index 1051048..45fb499 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;
}
More information about the vc
mailing list