Date: Thu, 17 Nov 2016 15:56:57 -0800 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Sepherosa Ziehau <sepherosa@gmail.com> Cc: "Bjoern A. Zeeb" <bz@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r308748 - head/sys/netgraph Message-ID: <20161117235657.GV27748@FreeBSD.org> In-Reply-To: <CAMOc5czJePr9ObomdsSLKgHOov_iVUoN4KLzqGpdXZ%2B9JccA3w@mail.gmail.com> References: <201611171403.uAHE3i3N044462@repo.freebsd.org> <CAMOc5czJePr9ObomdsSLKgHOov_iVUoN4KLzqGpdXZ%2B9JccA3w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 17, 2016 at 10:44:12PM +0800, Sepherosa Ziehau wrote: S> On Thu, Nov 17, 2016 at 10:03 PM, Bjoern A. Zeeb <bz@freebsd.org> wrote: S> > Author: bz S> > Date: Thu Nov 17 14:03:44 2016 S> > New Revision: 308748 S> > URL: https://svnweb.freebsd.org/changeset/base/308748 S> > S> > Log: S> > Writing out the L2TP control packet requires 12 bytes of S> > contiguous memory but in one path we did not always guarantee this, S> > thus do a m_pullup() there. S> > S> > PR: 214385 S> > Submitted by: Joe Jones (joeknockando googlemail.com) S> > MFC after: 3 days S> > S> > Modified: S> > head/sys/netgraph/ng_l2tp.c S> > S> > Modified: head/sys/netgraph/ng_l2tp.c S> > ============================================================================== S> > --- head/sys/netgraph/ng_l2tp.c Thu Nov 17 11:48:07 2016 (r308747) S> > +++ head/sys/netgraph/ng_l2tp.c Thu Nov 17 14:03:44 2016 (r308748) S> > @@ -1544,6 +1544,16 @@ ng_l2tp_xmit_ctrl(priv_p priv, struct mb S> > priv->stats.memoryFailures++; S> > return (ENOBUFS); S> > } S> > + S> > + /* S> > + * The below requires 12 contiguous bytes for the L2TP header S> > + * to be written into. S> > + */ S> > + m = m_pullup(m, 12); S> > + if (m == NULL) { S> > + priv->stats.memoryFailures++; S> > + return (ENOBUFS); S> > + } S> S> Would it be better that we do a (m->m_len < 12) test before doing the S> m_pullup()? Yes, and a line like: if (m->m_len < 12 && (m = m_pullup(m, 12)) == NULL) will also match the style of the rest of the code in the function. -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161117235657.GV27748>