svn commit: r308748 - head/sys/netgraph

Gleb Smirnoff glebius at FreeBSD.org
Thu Nov 17 23:56:59 UTC 2016


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 at 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.


More information about the svn-src-all mailing list