linux-mainline/net/sched
Vlad Buslov fd741f0d9f net/sched: flower: fix error handler on replace
When replacing a filter (i.e. 'fold' pointer is not NULL) the insertion of
new filter to idr is postponed until later in code since handle is already
provided by the user. However, the error handling code in fl_change()
always assumes that the new filter had been inserted into idr. If error
handler is reached when replacing existing filter it may remove it from idr
therefore making it unreachable for delete or dump afterwards. Fix the
issue by verifying that 'fold' argument wasn't provided by caller before
calling idr_remove().

Fixes: 08a0063df3 ("net/sched: flower: Move filter handle initialization earlier")
Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
Reviewed-by: Pedro Tammela <pctammela@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2023-05-05 10:01:31 +01:00
..
act_api.c net/sched: act_api: use the correct TCA_ACT attributes in dump 2023-03-23 08:39:08 +00:00
act_bpf.c
act_connmark.c net/sched: act_connmark: handle errno on tcf_idr_check_alloc 2023-03-01 08:19:09 +00:00
act_csum.c net: skbuff: hide csum_not_inet when CONFIG_IP_SCTP not set 2023-04-19 13:04:30 +01:00
act_ct.c
act_ctinfo.c
act_gact.c
act_gate.c net/sched: act_gate: use percpu stats 2023-02-16 10:39:28 +01:00
act_ife.c
act_ipt.c
act_meta_mark.c
act_meta_skbprio.c
act_meta_skbtcindex.c
act_mirred.c net/sched: act_mirred: Add carrier check 2023-05-01 07:26:10 +01:00
act_mpls.c net/sched: remove two skb_mac_header() uses 2023-03-22 22:43:23 -07:00
act_nat.c net/sched: act_nat: transition to percpu stats and rcu 2023-02-16 10:39:28 +01:00
act_pedit.c net/sched: act_pedit: free pedit keys on bail from offset check 2023-04-27 11:43:29 +02:00
act_police.c
act_sample.c net/sched: act_sample: fix action bind logic 2023-02-26 18:27:45 +00:00
act_simple.c
act_skbedit.c
act_skbmod.c
act_tunnel_key.c net/sched: act_tunnel_key: add support for "don't fragment" 2023-03-30 23:24:24 -07:00
act_vlan.c
cls_api.c net/sched: cls_api: remove block_cb from driver_list before freeing 2023-04-28 09:44:19 +01:00
cls_basic.c
cls_bpf.c
cls_cgroup.c
cls_flow.c
cls_flower.c net/sched: flower: fix error handler on replace 2023-05-05 10:01:31 +01:00
cls_fw.c
cls_matchall.c net/sched: support per action hw stats 2023-02-14 11:00:01 +01:00
cls_route.c
cls_u32.c
em_canid.c
em_cmp.c
em_ipset.c
em_ipt.c
em_meta.c fix typos in net/sched/* files 2023-03-24 09:05:03 +00:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig net/sched: Retire rsvp classifier 2023-02-16 09:27:07 +01:00
Makefile net/sched: Retire rsvp classifier 2023-02-16 09:27:07 +01:00
sch_api.c net: sched: remove qdisc_watchdog->last_expires 2023-03-09 23:24:14 -08:00
sch_blackhole.c
sch_cake.c sch_cake: do not use skb_mac_header() in cake_overhead() 2023-03-22 22:43:23 -07:00
sch_cbs.c
sch_choke.c
sch_codel.c
sch_drr.c
sch_etf.c
sch_ets.c
sch_fifo.c
sch_fq_codel.c
sch_fq_pie.c
sch_fq.c net/sched: sch_fq: fix integer overflow of "credit" 2023-04-21 20:24:29 -07:00
sch_frag.c
sch_generic.c net: sched: Print msecs when transmit queue time out 2023-04-23 14:18:05 +01:00
sch_gred.c
sch_hfsc.c
sch_hhf.c
sch_htb.c net/sched: sch_htb: use extack on errors messages 2023-04-23 18:47:09 +01:00
sch_ingress.c
sch_mq.c
sch_mqprio_lib.c net/sched: mqprio: allow per-TC user input of FP adminStatus 2023-04-13 22:22:10 -07:00
sch_mqprio_lib.h net/sched: mqprio: allow per-TC user input of FP adminStatus 2023-04-13 22:22:10 -07:00
sch_mqprio.c net/sched: mqprio: allow per-TC user input of FP adminStatus 2023-04-13 22:22:10 -07:00
sch_multiq.c
sch_netem.c
sch_pie.c fix typos in net/sched/* files 2023-03-24 09:05:03 +00:00
sch_plug.c
sch_prio.c
sch_qfq.c net/sched: sch_qfq: refactor parsing of netlink parameters 2023-04-23 18:47:09 +01:00
sch_red.c
sch_sfb.c
sch_sfq.c
sch_skbprio.c
sch_taprio.c net/sched: taprio: allow per-TC user input of FP adminStatus 2023-04-13 22:22:10 -07:00
sch_tbf.c
sch_teql.c