[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpVE=B+LDpG=DpiHh_ydUxxhTj_ge-20zgdB4J1OqAfCtQ@mail.gmail.com>
Date: Tue, 4 Feb 2020 14:26:30 -0800
From: Cong Wang <xiyou.wangcong@...il.com>
To: David Miller <davem@...emloft.net>
Cc: Eric Dumazet <eric.dumazet@...il.com>,
syzbot+f0bbb2287b8993d4fa74@...kaller.appspotmail.com,
Jamal Hadi Salim <jhs@...atatu.com>,
Jiri Pirko <jiri@...nulli.us>,
Jakub Kicinski <kuba@...nel.org>,
LKML <linux-kernel@...r.kernel.org>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
syzkaller-bugs <syzkaller-bugs@...glegroups.com>
Subject: Re: memory leak in tcindex_set_parms
On Tue, Feb 4, 2020 at 1:22 PM David Miller <davem@...emloft.net> wrote:
>
> From: Eric Dumazet <eric.dumazet@...il.com>
> Date: Tue, 4 Feb 2020 10:03:16 -0800
>
> >
> >
> > On 2/4/20 9:58 AM, syzbot wrote:
> >> Hello,
> >>
> >> syzbot found the following crash on:
> >>
> >> HEAD commit: 322bf2d3 Merge branch 'for-5.6' of git://git.kernel.org/pu..
> >> git tree: upstream
> >> console output: https://syzkaller.appspot.com/x/log.txt?x=1111f8e6e00000
> >> kernel config: https://syzkaller.appspot.com/x/.config?x=8d0490614a000a37
> >> dashboard link: https://syzkaller.appspot.com/bug?extid=f0bbb2287b8993d4fa74
> >> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> >> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17db90f6e00000
> >> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13a94511e00000
> >>
> >> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> >> Reported-by: syzbot+f0bbb2287b8993d4fa74@...kaller.appspotmail.com
> >>
> >>
> >
> > Might have been fixed already ?
> >
> > commit 599be01ee567b61f4471ee8078870847d0a11e8e net_sched: fix an OOB access in cls_tcindex
>
> My reaction was actually that this bug is caused by this commit :)
I think it is neither of the cases, I will test the following change:
diff --git a/net/sched/cls_tcindex.c b/net/sched/cls_tcindex.c
index 09b7dc5fe7e0..2495b15ca78c 100644
--- a/net/sched/cls_tcindex.c
+++ b/net/sched/cls_tcindex.c
@@ -454,6 +454,7 @@ tcindex_set_parms(struct net *net, struct
tcf_proto *tp, unsigned long base,
oldp = p;
r->res = cr;
tcf_exts_change(&r->exts, &e);
+ tcf_exts_destroy(&e);
rcu_assign_pointer(tp->root, cp);
Powered by blists - more mailing lists