On Tue, 2017-08-29 at 21:26 +0300, Nikolay Aleksandrov wrote: > The below commit added a call to ->destroy() on init failure, but multiq > still frees ->queues on error in init, but ->queues is also freed by > ->destroy() thus we get double free and corrupted memory. > > Very easy to reproduce (eth0 not multiqueue): > $ tc qdisc add dev eth0 root multiq > RTNETLINK answers: Operation not supported > $ ip l add dumdum type dummy > (crash)
> Fixes: 87b60cfacf9f ("net_sched: fix error recovery at qdisc creation") > Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com> > --- > net/sched/sch_multiq.c | 3 --- > 1 file changed, 3 deletions(-) > Acked-by: Eric Dumazet <eduma...@google.com>