]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
extensions: TCPOPTSTRIP: Do not print empty options
authorPhil Sutter <phil@nwl.cc>
Fri, 30 Sep 2022 22:36:50 +0000 (00:36 +0200)
committerPhil Sutter <phil@nwl.cc>
Sat, 1 Oct 2022 23:37:13 +0000 (01:37 +0200)
No point in printing anything if none of the bits are set.

Fixes: aef4c1e727563 ("libxt_TCPOPTSTRIP")
Signed-off-by: Phil Sutter <phil@nwl.cc>
extensions/libxt_TCPOPTSTRIP.c

index 6ea34892246029508202f498b96e60270a865cd6..ff873f98b3aaa4199298ca8359130eb73d770b51 100644 (file)
@@ -142,6 +142,13 @@ tcpoptstrip_print_list(const struct xt_tcpoptstrip_target_info *info,
        }
 }
 
+static bool tcpoptstrip_empty(const struct xt_tcpoptstrip_target_info *info)
+{
+       static const struct xt_tcpoptstrip_target_info empty = {};
+
+       return memcmp(info, &empty, sizeof(empty)) == 0;
+}
+
 static void
 tcpoptstrip_tg_print(const void *ip, const struct xt_entry_target *target,
                      int numeric)
@@ -149,6 +156,9 @@ tcpoptstrip_tg_print(const void *ip, const struct xt_entry_target *target,
        const struct xt_tcpoptstrip_target_info *info =
                (const void *)target->data;
 
+       if (tcpoptstrip_empty(info))
+               return;
+
        printf(" TCPOPTSTRIP options ");
        tcpoptstrip_print_list(info, numeric);
 }
@@ -159,6 +169,9 @@ tcpoptstrip_tg_save(const void *ip, const struct xt_entry_target *target)
        const struct xt_tcpoptstrip_target_info *info =
                (const void *)target->data;
 
+       if (tcpoptstrip_empty(info))
+               return;
+
        printf(" --strip-options ");
        tcpoptstrip_print_list(info, true);
 }