summaryrefslogtreecommitdiffstats
path: root/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch')
-rw-r--r--debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch b/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
new file mode 100644
index 000000000..3f259ac4c
--- /dev/null
+++ b/debian/patches/bugfix/all/net_sched-let-qdisc_put-accept-null-pointer.patch
@@ -0,0 +1,50 @@
+From: Diederik de Haas <didi.debian@cknow.org>
+Date: Wed, 22 Jun 2022 11:44:05 +0200
+Subject: net_sched: let qdisc_put() accept NULL pointer
+Bug-Debian: https://bugs.debian.org/1013299
+
+In commit 92833e8b5db6c209e9311ac8c6a44d3bf1856659 titled
+"net: sched: rename qdisc_destroy() to qdisc_put()" part of the
+functionality of qdisc_destroy() was moved into a (for linux-4.19.y)
+new function qdisk_put(), and the previous calls to qdisc_destroy()
+were changed to qdisk_put().
+This made it similar to f.e. 5.10.y and current master.
+
+There was one part of qdisc_destroy() not moved over to qdisc_put() and
+that was the check for a NULL value, causing oopses.
+(See upstream commit: 6efb971ba8edfbd80b666f29de12882852f095ae)
+This patch fixes that.
+
+Fixes: 92833e8b5db6c209e9311ac8c6a44d3bf1856659
+Reported-by: Thorsten Glaser <tg@mirbsd.de>
+Link: https://bugs.debian.org/1013299
+---
+ net/sched/sch_generic.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 7c1b1eff84f4..cad2586c3473 100644
+--- a/net/sched/sch_generic.c
++++ b/net/sched/sch_generic.c
+@@ -970,8 +970,6 @@ static void qdisc_destroy(struct Qdisc *qdisc)
+ const struct Qdisc_ops *ops;
+ struct sk_buff *skb, *tmp;
+
+- if (!qdisc)
+- return;
+ ops = qdisc->ops;
+
+ #ifdef CONFIG_NET_SCHED
+@@ -1003,6 +1001,9 @@ static void qdisc_destroy(struct Qdisc *qdisc)
+
+ void qdisc_put(struct Qdisc *qdisc)
+ {
++ if (!qdisc)
++ return;
++
+ if (qdisc->flags & TCQ_F_BUILTIN ||
+ !refcount_dec_and_test(&qdisc->refcnt))
+ return;
+--
+2.36.1
+