summaryrefslogtreecommitdiffstats
path: root/iptables.c
diff options
context:
space:
mode:
authorlaforge <laforge>2002-02-18 16:15:31 +0000
committerlaforge <laforge>2002-02-18 16:15:31 +0000
commite4c5555a9411410d401720fd3fc250cb4164a630 (patch)
treed1fbdb5b9c00bf7d687fbb9b364d2f8d8fd77b99 /iptables.c
parent31741d350e9608c782fc8396e11c6da2de6d0069 (diff)
add bugfix in case we are using a protocol number (-p N) which has no matching /etc/protocols entry
Diffstat (limited to 'iptables.c')
-rw-r--r--iptables.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/iptables.c b/iptables.c
index 3ff0589..25e6d9f 100644
--- a/iptables.c
+++ b/iptables.c
@@ -689,10 +689,15 @@ find_proto(const char *pname, enum ipt_tryload tryload, int nolookup)
{
unsigned int proto;
- if (string_to_number(pname, 0, 255, &proto) != -1)
- return find_match(proto_to_name(proto, nolookup), tryload);
+ if (string_to_number(pname, 0, 255, &proto) != -1) {
+ char *protoname = proto_to_name(proto, nolookup);
- return find_match(pname, tryload);
+ if (protoname)
+ return find_match(protoname, tryload);
+ } else
+ return find_match(pname, tryload);
+
+ return NULL;
}
u_int16_t