diff --git a/tc/m_ipt.c b/tc/m_ipt.c index ec33f8fe..eea4bc11 100644 --- a/tc/m_ipt.c +++ b/tc/m_ipt.c @@ -596,8 +596,8 @@ print_ipt(struct action_util *au,FILE * f, struct rtattr *arg) if (NULL == opts) return -1; - memset(tb, 0, sizeof (tb)); - parse_rtattr(tb, TCA_IPT_MAX, RTA_DATA(arg), RTA_PAYLOAD(arg)); + + parse_rtattr_nested(tb, TCA_IPT_MAX, arg); if (tb[TCA_IPT_TABLE] == NULL) { fprintf(f, "[NULL ipt table name ] assuming mangle "); diff --git a/tc/m_pedit.c b/tc/m_pedit.c index 8d7a60b0..5031c62e 100644 --- a/tc/m_pedit.c +++ b/tc/m_pedit.c @@ -554,8 +554,7 @@ print_pedit(struct action_util *au,FILE * f, struct rtattr *arg) if (arg == NULL) return -1; - memset(tb, 0, sizeof (tb)); - parse_rtattr(tb, TCA_PEDIT_MAX, RTA_DATA(arg), RTA_PAYLOAD(arg)); + parse_rtattr_nested(tb, TCA_PEDIT_MAX, arg); if (tb[TCA_PEDIT_PARMS] == NULL) { fprintf(f, "[NULL pedit parameters]");