tc: m_xt: Prevent segfault with standard targets

Iptables standard targets like DROP or REJECT don't implement the print
callback in libxtables. Hence the following command would segfault:

| tc filter add dev d0 parent ffff: u32 match u32 0 0 action xt -j DROP

With this patch standard targets still can't be used (and are not really
useful anyway), but at least it doesn't crash anymore.

Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
Phil Sutter 2016-06-10 13:42:00 +02:00 committed by Stephen Hemminger
parent 8b625177ba
commit 445745221a
1 changed files with 6 additions and 2 deletions

View File

@ -250,8 +250,12 @@ static int parse_ipt(struct action_util *a, int *argc_p,
fprintf(stdout, "tablename: %s hook: %s\n ", tname, ipthooks[hook]);
fprintf(stdout, "\ttarget: ");
if (m)
m->print(NULL, m->t, 0);
if (m) {
if (m->print)
m->print(NULL, m->t, 0);
else
printf("%s ", m->name);
}
fprintf(stdout, " index %d\n", index);
if (strlen(tname) > 16) {