summaryrefslogtreecommitdiffstats
path: root/sys/dev/nge
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-03-28 17:49:03 +0000
committersam <sam@FreeBSD.org>2005-03-28 17:49:03 +0000
commitc933de3749a08df98af0021abbe903699dcddb28 (patch)
tree5750e51d392c20461f9be24360943598b3203ccf /sys/dev/nge
parent12c3eeb4fa1b4cb21122c3550ba30283203f40d0 (diff)
downloadFreeBSD-src-c933de3749a08df98af0021abbe903699dcddb28.zip
FreeBSD-src-c933de3749a08df98af0021abbe903699dcddb28.tar.gz
fix null ptr deref when nge_newbuf is called with an existing mbuf
Noticed by: Coverity Prevent analysis tool
Diffstat (limited to 'sys/dev/nge')
-rw-r--r--sys/dev/nge/if_nge.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c
index d68be4b..0fc0fca 100644
--- a/sys/dev/nge/if_nge.c
+++ b/sys/dev/nge/if_nge.c
@@ -1053,23 +1053,21 @@ nge_newbuf(sc, c, m)
struct nge_desc *c;
struct mbuf *m;
{
- struct mbuf *m_new = NULL;
if (m == NULL) {
- m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
- if (m_new == NULL)
+ m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+ if (m == NULL)
return (ENOBUFS);
- m = m_new;
} else
m->m_data = m->m_ext.ext_buf;
m->m_len = m->m_pkthdr.len = MCLBYTES;
- m_adj(m_new, sizeof(u_int64_t));
+ m_adj(m, sizeof(u_int64_t));
- c->nge_mbuf = m_new;
- c->nge_ptr = vtophys(mtod(m_new, caddr_t));
- c->nge_ctl = m_new->m_len;
+ c->nge_mbuf = m;
+ c->nge_ptr = vtophys(mtod(m, caddr_t));
+ c->nge_ctl = m->m_len;
c->nge_extsts = 0;
return(0);
OpenPOWER on IntegriCloud