Testsuite found an issue: multiport accepts -p ! tcp.
diff --git a/extensions/libipt_multiport.c b/extensions/libipt_multiport.c
index 7442f94..410a390 100644
--- a/extensions/libipt_multiport.c
+++ b/extensions/libipt_multiport.c
@@ -144,6 +144,10 @@
static const char *
check_proto(const struct ipt_entry *entry)
{
+ if (entry->ip.invflags & IPT_INV_PROTO)
+ exit_error(PARAMETER_PROBLEM,
+ "multiport only works with TCP or UDP");
+
if (entry->ip.proto == IPPROTO_TCP)
return "tcp";
else if (entry->ip.proto == IPPROTO_UDP)