On Tue, 23 Jul 2019 21:36:00 +0200 Jiri Pirko <j...@resnulli.us> wrote:
> Tue, Jul 23, 2019 at 07:54:01PM CEST, step...@networkplumber.org wrote: > >On Tue, 23 Jul 2019 13:25:37 +0200 > >Jiri Pirko <j...@resnulli.us> wrote: > > > >> From: Jiri Pirko <j...@mellanox.com> > >> > >> One cannot depend on *argv being null in case of no arg is left on the > >> command line. For example in batch mode, this is not always true. Check > >> argc instead to prevent crash. > >> > >> Reported-by: Alex Kushnarov <alexand...@mellanox.com> > >> Fixes: fd8b3d2c1b9b ("actions: Add support for user cookies") > >> Signed-off-by: Jiri Pirko <j...@mellanox.com> > > > >Actually makeargs does NULL terminate the last arg so what input > >to batchmode is breaking this? > > Interesting, there must be another but out there then. > > My input is: > filter add dev testdummy parent ffff: protocol all prio 11000 flower action > drop > filter add dev testdummy parent ffff: protocol ipv4 prio 1 flower dst_mac > 11:22:33:44:55:66 action drop This maybe related. Looks like the batchsize patches had issues. # valgrind ./tc/tc -batch filter.bat ==27348== Memcheck, a memory error detector ==27348== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==27348== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info ==27348== Command: ./tc/tc -batch filter.bat ==27348== ==27348== Conditional jump or move depends on uninitialised value(s) ==27348== at 0x4EE9C0C: getdelim (iogetdelim.c:59) ==27348== by 0x152A37: getline (stdio.h:120) ==27348== by 0x152A37: getcmdline (utils.c:1311) ==27348== by 0x115543: batch (tc.c:358) ==27348== by 0x4E9D09A: (below main) (libc-start.c:308) ==27348== ==27348== Conditional jump or move depends on uninitialised value(s) ==27348== at 0x152BE4: makeargs (utils.c:1359) ==27348== by 0x115614: batch (tc.c:366) ==27348== by 0x4E9D09A: (below main) (libc-start.c:308) ==27348== ==27348== Conditional jump or move depends on uninitialised value(s) ==27348== at 0x11EBFD: parse_action (m_action.c:225) ==27348== by 0x13633E: flower_parse_opt (f_flower.c:1285) ==27348== by 0x1190EB: tc_filter_modify (tc_filter.c:217) ==27348== by 0x115674: batch (tc.c:404) ==27348== by 0x4E9D09A: (below main) (libc-start.c:308) ==27348== ==27348== Use of uninitialised value of size 8 ==27348== at 0x11EC0B: parse_action (m_action.c:225) ==27348== by 0x13633E: flower_parse_opt (f_flower.c:1285) ==27348== by 0x1190EB: tc_filter_modify (tc_filter.c:217) ==27348== by 0x115674: batch (tc.c:404) ==27348== by 0x4E9D09A: (below main) (libc-start.c:308) ==27348== Error: Parent Qdisc doesn't exists. Error: Parent Qdisc doesn't exists. Command failed filter.bat:1