summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@redhat.com>2017-03-22 15:02:42 -0500
committerJustin M. Forbes <jforbes@redhat.com>2017-03-22 15:02:42 -0500
commitc73017eaa084160ba7fba519aaaf84006bf4124d (patch)
tree1a7755cfeb3c81792c08de92567ea97cc8aa3239
parente6f3c5a5ccc13abd85ae51c5ba140ac12d7b7973 (diff)
downloadkernel-c73017eaa084160ba7fba519aaaf84006bf4124d.tar.gz
kernel-c73017eaa084160ba7fba519aaaf84006bf4124d.tar.xz
kernel-c73017eaa084160ba7fba519aaaf84006bf4124d.zip
Fix crda rhbz 1422247
-rw-r--r--genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch55
-rw-r--r--kernel.spec6
2 files changed, 61 insertions, 0 deletions
diff --git a/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch b/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch
new file mode 100644
index 000000000..ab048d1c9
--- /dev/null
+++ b/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch
@@ -0,0 +1,55 @@
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: 2017-03-22 15:08:33
+Subject: [PATCH 4.11] genetlink: fix counting regression on ctrl_dumpfamily()
+
+Commit 2ae0f17df1cd ("genetlink: use idr to track families") replaced
+
+ if (++n < fams_to_skip)
+ continue;
+into:
+
+ if (n++ < fams_to_skip)
+ continue;
+
+This subtle change cause that on retry ctrl_dumpfamily() call we omit
+one family that failed to do ctrl_fill_info() on previous call, because
+cb->args[0] = n number counts also family that failed to do
+ctrl_fill_info().
+
+Patch fixes the problem and avoid confusion in the future just decrease
+n counter when ctrl_fill_info() fail.
+
+User visible problem caused by this bug is failure to get access to
+some genetlink family i.e. nl80211. However problem is reproducible
+only if number of registered genetlink families is big enough to
+cause second call of ctrl_dumpfamily().
+
+Cc: Xose Vazquez Perez <xose.vazquez@gmail.com>
+Cc: Larry Finger <Larry.Finger@lwfinger.net>
+Cc: Johannes Berg <johannes@sipsolutions.net>
+Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+Dave, please also target this for 4.10+ -stable.
+
+ net/netlink/genetlink.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
+index fb6e10f..92e0981 100644
+--- a/net/netlink/genetlink.c
++++ b/net/netlink/genetlink.c
+@@ -783,8 +783,10 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb)
+
+ if (ctrl_fill_info(rt, NETLINK_CB(cb->skb).portid,
+ cb->nlh->nlmsg_seq, NLM_F_MULTI,
+- skb, CTRL_CMD_NEWFAMILY) < 0)
++ skb, CTRL_CMD_NEWFAMILY) < 0) {
++ n--;
+ break;
++ }
+ }
+
+ cb->args[0] = n;
+--
+1.7.1
diff --git a/kernel.spec b/kernel.spec
index 527b4f888..468dc0575 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -605,6 +605,9 @@ Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
# grabbed from mailing list
Patch667: v3-Revert-tty-serial-pl011-add-ttyAMA-for-matching-pl011-console.patch
+# Fix crda rhbz 1422247
+Patch668: genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -2169,6 +2172,9 @@ fi
#
#
%changelog
+* Wed Mar 22 2017 Justin M. Forbes <jforbes@fedoraproject.org>
+- Fix crda (rhbz 1422247)
+
* Wed Mar 22 2017 Laura Abbott <labbott@fedoraproject.org> - 4.11.0-0.rc3.git1.1
- Linux v4.11-rc3-35-g093b995