summaryrefslogtreecommitdiffstats
path: root/extensions/libipt_multiport.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2005-01-03 09:51:58 +0000
committerRusty Russell <rusty@rustcorp.com.au>2005-01-03 09:51:58 +0000
commit225f462b814a47394858b5994acdcc4f3c951a66 (patch)
tree0c6a5a7c0b204cfa8547456e5806f355cf222537 /extensions/libipt_multiport.c
parent5df9547e093c4fef0bb926adb268dbd020e543a6 (diff)
Testsuite found an issue: multiport accepts -p ! tcp.
Diffstat (limited to 'extensions/libipt_multiport.c')
-rw-r--r--extensions/libipt_multiport.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/extensions/libipt_multiport.c b/extensions/libipt_multiport.c
index 7442f94b..410a3906 100644
--- a/extensions/libipt_multiport.c
+++ b/extensions/libipt_multiport.c
@@ -144,6 +144,10 @@ init(struct ipt_entry_match *m, unsigned int *nfcache)
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)