linux/net/sched
Vlad Buslov 4097e9d250 net: sched: don't use tc_action->order during action dump
Function tcf_action_dump() relies on tc_action->order field when starting
nested nla to send action data to userspace. This approach breaks in
several cases:

- When multiple filters point to same shared action, tc_action->order field
  is overwritten each time it is attached to filter. This causes filter
  dump to output action with incorrect attribute for all filters that have
  the action in different position (different order) from the last set
  tc_action->order value.

- When action data is displayed using tc action API (RTM_GETACTION), action
  order is overwritten by tca_action_gd() according to its position in
  resulting array of nl attributes, which will break filter dump for all
  filters attached to that shared action that expect it to have different
  order value.

Don't rely on tc_action->order when dumping actions. Set nla according to
action position in resulting array of actions instead.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-05-24 13:27:52 -07:00
..
act_api.c net: sched: don't use tc_action->order during action dump 2019-05-24 13:27:52 -07:00
act_bpf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_connmark.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_csum.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_gact.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_ife.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_ipt.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_meta_mark.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_meta_skbprio.c net sched actions: change IFE modules alias names 2017-10-12 22:13:20 -07:00
act_meta_skbtcindex.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_mirred.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_nat.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_pedit.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_police.c net/sched: allow stats updates from offloaded police actions 2019-05-05 21:49:24 -07:00
act_sample.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_simple.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_skbedit.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_skbmod.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_tunnel_key.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
act_vlan.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_api.c net/sched: add police action to the hardware intermediate representation 2019-05-05 21:49:24 -07:00
cls_basic.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_bpf.c net/sched: remove block pointer from common offload structure 2019-05-07 12:23:40 -07:00
cls_cgroup.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-07 17:22:09 -07:00
cls_flow.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_flower.c net/sched: remove block pointer from common offload structure 2019-05-07 12:23:40 -07:00
cls_fw.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_matchall.c net/sched: avoid double free on matchall reoffload 2019-05-08 16:34:58 -07:00
cls_route.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_rsvp6.c
cls_rsvp.c
cls_rsvp.h netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
cls_tcindex.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
cls_u32.c net/sched: remove block pointer from common offload structure 2019-05-07 12:23:40 -07:00
em_canid.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 11 2019-05-21 11:28:45 +02:00
em_cmp.c
em_ipset.c
em_ipt.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
em_meta.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
em_nbyte.c net: sched: em_nbyte: don't add the data offset twice 2018-01-24 14:52:40 -05:00
em_text.c
em_u32.c
ematch.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile tc: Add support for configuring the taprio scheduler 2018-10-04 13:52:23 -07:00
sch_api.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_atm.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sch_blackhole.c net_sched: blackhole: tell upper qdisc about dropped packets 2018-06-17 08:42:33 +09:00
sch_cake.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_cbq.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_cbs.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_choke.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_codel.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_drr.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_dsmark.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sch_etf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_fifo.c net: sched: rename qdisc_destroy() to qdisc_put() 2018-09-25 20:17:35 -07:00
sch_fq_codel.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_fq.c net_sched: sch_fq: handle non connected flows 2019-05-07 12:09:25 -07:00
sch_generic.c net: add a generic tracepoint for TX queue timeout 2019-05-04 00:41:41 -04:00
sch_gred.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_hfsc.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_hhf.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sch_htb.c sch_htb: redefine htb qdisc overlimits 2019-05-05 21:55:20 -07:00
sch_ingress.c netlink: make nla_nest_start() add NLA_F_NESTED flag 2019-04-27 17:03:44 -04:00
sch_mq.c net: sched: introduce and use qstats read helpers 2019-04-01 14:50:13 -07:00
sch_mqprio.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_multiq.c net: sched: introduce and use qdisc tree flush/purge helpers 2019-04-01 14:50:13 -07:00
sch_netem.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_pie.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_plug.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_prio.c net: sched: introduce and use qdisc tree flush/purge helpers 2019-04-01 14:50:13 -07:00
sch_qfq.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_red.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_sfb.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_sfq.c net: sch: api: add extack support in tcf_block_get 2017-12-21 12:32:51 -05:00
sch_skbprio.c net/sched: add skbprio scheduler 2018-07-24 14:44:00 -07:00
sch_taprio.c taprio: add null check on sched_nest to avoid potential null pointer dereference 2019-05-07 12:15:33 -07:00
sch_tbf.c netlink: make validation more configurable for future strictness 2019-04-27 17:07:21 -04:00
sch_teql.c net: sched: sch: add extack for init callback 2017-12-21 12:32:50 -05:00