diff options
author | Justin M. Forbes <jforbes@redhat.com> | 2017-03-22 15:02:42 -0500 |
---|---|---|
committer | Justin M. Forbes <jforbes@redhat.com> | 2017-03-22 15:02:42 -0500 |
commit | c73017eaa084160ba7fba519aaaf84006bf4124d (patch) | |
tree | 1a7755cfeb3c81792c08de92567ea97cc8aa3239 | |
parent | e6f3c5a5ccc13abd85ae51c5ba140ac12d7b7973 (diff) | |
download | kernel-c73017eaa084160ba7fba519aaaf84006bf4124d.tar.gz kernel-c73017eaa084160ba7fba519aaaf84006bf4124d.tar.xz kernel-c73017eaa084160ba7fba519aaaf84006bf4124d.zip |
Fix crda rhbz 1422247
-rw-r--r-- | genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch | 55 | ||||
-rw-r--r-- | kernel.spec | 6 |
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 |