Module Name: src Committed By: snj Date: Fri May 15 03:50:36 UTC 2015
Modified Files: src/sys/dev/pci [netbsd-7]: hifn7751.c Log Message: Pull up following revision(s) (requested by maxv in ticket #763): sys/dev/pci/hifn7751.c: revisions 1.58, 1.61 fix mbuf leak on failure (Brainy) -- Use-after-free. Found by Brainy. To generate a diff of this commit: cvs rdiff -u -r1.56.2.2 -r1.56.2.3 src/sys/dev/pci/hifn7751.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/hifn7751.c diff -u src/sys/dev/pci/hifn7751.c:1.56.2.2 src/sys/dev/pci/hifn7751.c:1.56.2.3 --- src/sys/dev/pci/hifn7751.c:1.56.2.2 Mon May 11 06:15:46 2015 +++ src/sys/dev/pci/hifn7751.c Fri May 15 03:50:36 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: hifn7751.c,v 1.56.2.2 2015/05/11 06:15:46 msaitoh Exp $ */ +/* $NetBSD: hifn7751.c,v 1.56.2.3 2015/05/15 03:50:36 snj Exp $ */ /* $FreeBSD: hifn7751.c,v 1.5.2.7 2003/10/08 23:52:00 sam Exp $ */ /* $OpenBSD: hifn7751.c,v 1.140 2003/08/01 17:55:54 deraadt Exp $ */ @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.56.2.2 2015/05/11 06:15:46 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hifn7751.c,v 1.56.2.3 2015/05/15 03:50:36 snj Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -3105,8 +3105,10 @@ hifn_mkmbuf_chain(int totlen, struct mbu if (len == MHLEN) M_DUP_PKTHDR(m0, mtemplate); MCLGET(m0, M_DONTWAIT); - if (!(m0->m_flags & M_EXT)) - m_freem(m0); + if (!(m0->m_flags & M_EXT)) { + m_freem(m0); + return (NULL); + } len = MCLBYTES; totlen -= len; @@ -3121,6 +3123,7 @@ hifn_mkmbuf_chain(int totlen, struct mbu } MCLGET(m, M_DONTWAIT); if (!(m->m_flags & M_EXT)) { + m_freem(m); m_freem(m0); return (NULL); }