** Description changed: + [Impact] + + It is possible to trigger a NULL pointer dereference in tcindex_delete() + with a simple reproducer script, this is because in tcindex_set_parms() + when old_r doesn't exist we set the new exts to cr.exts that can be + uninitialized, triggering the NULL pointer dereference. + + In addition to that we may also hit a race condition in + tcindex_destroy() (as pointed out in the original bug report and also + here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921542#10), that + is also fixed upstream, but it requires 4b79817f7add "net_sched: switch + to rcu_work". + + However adding these changes introduces three memory leak problems in + cls_tcindex (that can be easily verified using the same test case). + These leaks are also fixed upstream by 711ff09f3330 "net_sched: fix a + memory leak in cls_tcindex" and 000d2aeda70c "net_sched: fix two more + memory leaks in cls_tcindex", so we need to backport also these two + additional fixes. + + After all these fixes are applied the test case doesn't seem to trigger + any bug. + + [Test Case] + + #!/bin/sh -ex + + modprobe ifb + + while true; do + tc qdisc add dev ifb0 root handle 2:0 prio bands 5 + tc qdisc add dev ifb0 parent 2:5 sfq + tc filter add dev ifb0 parent 2:0 protocol ip prio 5 handle 0 tcindex mask 0 classid 2:5 pass_on + tc qdisc del dev ifb0 root || true + done + + [Fix] + + * Fixes required to solve this problem: + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2df8bee5654bb2b7312662ca6810d4dc16b0b67f + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8015d93ebd27484418d4952284fd02172fa4b0b2 + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=033b228e7f26b29ae37f8bfa1bc6b209a5365e9f + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1db817e75f5b9387b8db11e37d5f0624eb9223e0 + + [Regression Potential] + + * All upstream fixes, tested on the affected platform, backport changes + are minimal. + + [Original bug report] + I am running into a kernel crash issue using latest Ubuntu 4.15 kernel. It does not appear to have been fixed in Ubuntu-4.15.0-48.51. This crash has also been reported for debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921542 The kernel crash issue was fixed in February in the Linux kernel: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=056a17982adbd52b2a6c5ec6266cee4521cd931b I did test one of the recent kernel-ppa/mainline kernels, more specifically: linux-image-unsigned-4.19.34-041934-generic_4.19.34-041934.201904051741_amd64.deb It seems to fix the problem, that is, no crashes experienced so far.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1825942 Title: kernel crash : net_sched race condition in tcindex_destroy() To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1825942/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs