Re: [PATCH] netfilter: nf_conntrack: reserve two bytes for nf_ct_ext->len

From: Patrick McHardy
Date: Thu Mar 27 2014 - 12:01:21 EST


On Thu, Mar 27, 2014 at 04:50:33PM +0100, Florian Westphal wrote:
> Andrey Vagin <avagin@xxxxxxxxxx> wrote:
> > "len" contains sizeof(nf_ct_ext) and size of extensions. In a worst
> > case it can contain all extensions. Bellow you can find sizes for all
> > types of extensions. Their sum is definitely bigger than 256.
> >
> > nf_ct_ext_types[0]->len = 24
> > nf_ct_ext_types[1]->len = 32
> > nf_ct_ext_types[2]->len = 24
> > nf_ct_ext_types[3]->len = 32
> > nf_ct_ext_types[4]->len = 152
>
> Guess its the timer in the ecache extension (with LOCKDEP on probably).
>
> I'll submit a patch to get rid of that shortly.
>
> I think your patch is fine because the 'no timer
> in ecache extension' change is quite large, needs review/stress testing
> etc and is inapropriate for stable tree anyway.
>
> > I have seen "len" up to 280 and my host has crashes w/o this patch.
>
> ecache is 24 bytes without that timer, should be < 256 in total for
> all extensions.
>
> I think BUILD_BUG_ON test would be nice.

We also have variable length extensions, but we definitely should catch
this *somewhere*.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/