From cadd480c74b11f0510aa56d9ee9f58c7fd7c094d Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 4 Apr 2017 16:21:45 +0200 Subject: [PATCH] tc: m_xt: Prevent segfault with standard targets Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1326726 Upstream Status: iproute2.git commit 445745221a21e commit 445745221a21ecb4111c19cfa7f4c2cf4796337f Author: Phil Sutter Date: Fri Jun 10 13:42:00 2016 +0200 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 --- tc/m_xt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tc/m_xt.c b/tc/m_xt.c index 537daf8..aa83061 100644 --- a/tc/m_xt.c +++ b/tc/m_xt.c @@ -248,8 +248,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) { -- 1.8.3.1