diff --git a/tc/m_bpf.c b/tc/m_bpf.c index 3b864f9d..bc6cc47a 100644 --- a/tc/m_bpf.c +++ b/tc/m_bpf.c @@ -89,20 +89,25 @@ static int parse_bpf(struct action_util *a, int *argc_p, char ***argv_p, if (argc) { if (matches(*argv, "reclassify") == 0) { parm.action = TC_ACT_RECLASSIFY; - NEXT_ARG(); + argc--; + argv++; } else if (matches(*argv, "pipe") == 0) { parm.action = TC_ACT_PIPE; - NEXT_ARG(); + argc--; + argv++; } else if (matches(*argv, "drop") == 0 || matches(*argv, "shot") == 0) { parm.action = TC_ACT_SHOT; - NEXT_ARG(); + argc--; + argv++; } else if (matches(*argv, "continue") == 0) { parm.action = TC_ACT_UNSPEC; - NEXT_ARG(); + argc--; + argv++; } else if (matches(*argv, "pass") == 0) { parm.action = TC_ACT_OK; - NEXT_ARG(); + argc--; + argv++; } }