Re: KASAN: slab-out-of-bounds Read in __nla_put_nohdr

From: Cong Wang
Date: Wed Jan 22 2020 - 15:27:25 EST


On Tue, Jan 21, 2020 at 11:55 AM Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:
> em_nbyte_change() sets
> em->datalen = sizeof(*nbyte) + nbyte->len;
>
> But later tcf_em_validate() overwrites em->datalen with the user provide value (em->datalen = data_len; )
> which can be bigger than the allocated (kmemdup) space in em_nbyte_change()
>
> Should net/sched/em_nbyte.c() provide a dump() handler to avoid this issue ?

I think for those who implement ->change() we should leave
->datalen untouched to respect their choices. I don't see why
we have to set it twice.

Thanks.