iproute2/tc
Dmytro Linkin 2f103545a5 tc/pedit: Fix wrong pedit ipv6 structure id
Tc pedit action with more than two ip6 munge in a row cause infinite
loop.

Example:

$ tc filter add dev eth0 protocol ipv6 parent ffff: \
flower ip_proto sctp \
    action pedit ex \
        munge ip6 hoplimit set 0x1 \
        munge ip6 src set 2001:0db8:0:f101::1 \
        munge that cause infinite loop

The example command never returns, instead of failing with parse error
as expected. Pedit ipv6 structure has wrong id, which leads to the
creation linked list with one node in tc/m_pedit.c:get_pedit_kind(),
referring to itself. This node is created if command have two ip6 munge
in a row, and any third ip6 munge will cause infinite loop.
Changing this id from "ipv6" to "ip6" solves the problem.

Fixes: f3e1b2448a ("pedit: Introduce ipv6 support")
Signed-off-by: Dmytro Linkin <dmitrolin@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2019-03-01 11:05:00 -08:00
..
.gitignore Add ignore files to make using git easier 2006-08-08 12:04:38 -07:00
Makefile tc: fix xtables incorrect usage of LDFLAGS 2018-12-13 11:38:43 -08:00
e_bpf.c bpf: make tc's bpf loader generic and move into lib 2016-11-29 12:35:32 -08:00
em_canid.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_cmp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_ipset.c Include bsd/string.h only in include/utils.h 2018-11-05 08:38:32 -08:00
em_ipt.c tc: Fix compilation error with old iptables 2018-03-27 06:38:52 -07:00
em_meta.c tc/meta: make meta_table static and const 2018-11-19 11:42:44 -08:00
em_nbyte.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_u32.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
emp_ematch.l tc/lexer: let quotes actually start strings 2018-01-24 08:49:10 -08:00
emp_ematch.y tc: remove extra whitespace 2015-10-23 15:43:28 -07:00
f_basic.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
f_bpf.c f_bpf: communicate ifindex for eBPF offload 2017-11-26 11:57:57 -08:00
f_cgroup.c tc actions: Improved batching and time filtered dumping 2017-08-04 13:16:51 -07:00
f_flow.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_flower.c f_flower: fix build with musl libc 2019-01-25 09:20:03 +13:00
f_fw.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_matchall.c tc: jsonify matchall filter 2017-11-26 12:20:51 -08:00
f_route.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_rsvp.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_tcindex.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
f_u32.c tc: f_u32: allow skip_hw and skip_sw flags to be last 2018-11-09 08:12:29 -08:00
m_action.c tc/action: make variables static 2018-11-19 11:42:44 -08:00
m_bpf.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_connmark.c tc: jsonify connmark action 2018-04-08 10:52:32 -07:00
m_csum.c tc: add json support in csum action 2018-06-05 15:30:30 -07:00
m_ematch.c tc/ematch: make local functions static 2018-11-19 11:42:44 -08:00
m_ematch.h tc/ematch: make local functions static 2018-11-19 11:42:44 -08:00
m_estimator.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
m_gact.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_ife.c fix print_0xhex on 32 bit 2018-12-10 14:20:32 -08:00
m_ipt.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_mirred.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_nat.c tc: jsonify nat action 2018-06-20 10:20:34 -07:00
m_pedit.c tc/pedit: make functions static 2018-11-19 11:42:44 -08:00
m_pedit.h tc/pedit: make functions static 2018-11-19 11:42:44 -08:00
m_police.c tc/police: make print_police static 2018-11-19 11:42:44 -08:00
m_sample.c tc: jsonify sample action 2018-04-01 08:44:31 -07:00
m_simple.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_skbedit.c net:sched: add action inheritdsfield to skbedit 2018-07-19 09:17:56 -07:00
m_skbmod.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_tunnel_key.c tc: m_tunnel_key: Allow key-less tunnels 2019-01-22 16:04:07 +13:00
m_vlan.c Merge branch 'iproute2-master' into iproute2-next 2018-03-13 17:48:10 -07:00
m_xt.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
m_xt_old.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
p_eth.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
p_icmp.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
p_ip.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
p_ip6.c tc/pedit: Fix wrong pedit ipv6 structure id 2019-03-01 11:05:00 -08:00
p_tcp.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
p_udp.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
q_atm.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_cake.c q_cake: Also print nonat, nowash and no-ack-filter keywords 2018-09-14 11:32:46 -07:00
q_cbq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_cbs.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_choke.c tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
q_clsact.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
q_codel.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_drr.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_dsmark.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_etf.c tc: Add support for the ETF Qdisc 2018-07-11 17:50:10 -07:00
q_fifo.c tc: jsonify output of q_fifo 2018-10-08 09:22:22 -07:00
q_fq.c tc: fq: support ce_threshold attribute 2018-11-24 07:30:24 -08:00
q_fq_codel.c tc: Add JSON output of fq_codel stats 2018-03-13 18:05:40 -07:00
q_gred.c tc: gred: allow controlling and dumping per-DP RED flags 2018-11-24 07:11:40 -08:00
q_hfsc.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_hhf.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_htb.c fix print_0xhex on 32 bit 2018-12-10 14:20:32 -08:00
q_ingress.c ingress: Don't break JSON output 2018-04-25 11:08:39 -07:00
q_mqprio.c tc/mqprio: Print extra info on invalid args. 2018-09-10 12:14:00 -07:00
q_multiq.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_netem.c q_netem: slotting with non-uniform distribution 2018-08-30 11:08:19 -07:00
q_pie.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_prio.c tc: prio: JSON-ify prio output 2018-01-26 13:00:18 -08:00
q_qfq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_red.c tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
q_rr.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_sfb.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_sfq.c tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
q_skbprio.c Add SKB Priority qdisc support in tc(8) 2018-08-14 07:06:43 -07:00
q_taprio.c fix print_0xhex on 32 bit 2018-12-10 14:20:32 -08:00
q_tbf.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
static-syms.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc.c tc: Remove pointless assignments in batch() 2018-10-22 10:05:43 -07:00
tc_cbq.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_cbq.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc_class.c tc/class: make filter variables static 2018-11-19 11:42:44 -08:00
tc_common.h Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
tc_core.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_core.h tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_estimator.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_exec.c tc: replace magic constant 16 with #define 2017-11-24 11:19:18 -08:00
tc_filter.c Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
tc_monitor.c Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
tc_qdisc.c Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
tc_red.c tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
tc_red.h tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
tc_stab.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
tc_util.c tc: use bits not mbits/sec in rate percent 2019-02-08 09:59:45 -08:00
tc_util.h tc/util: make local functions static 2018-11-19 11:42:44 -08:00