/etc/protocols defines protocol zero as 'ip' for IPv4, and
'hopopt' for IPv6, which can be used with conntrack as '-p ip'
or '-p hopopt'.  However it's equivalent, '-p 0' is considered
unsupported.  Change the range check in findproto() to allow
zero as well.

Signed-off-by: Brian Haley <[email protected]>
---
 src/conntrack.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/conntrack.c b/src/conntrack.c
index daa93db..97132a9 100644
--- a/src/conntrack.c
+++ b/src/conntrack.c
@@ -628,7 +628,7 @@ static struct ctproto_handler *findproto(char *name, int 
*pnum)
        }
        /* using a protocol number? */
        protonum = atoi(name);
-       if (protonum > 0 && protonum <= IPPROTO_MAX) {
+       if (protonum >= 0 && protonum <= IPPROTO_MAX) {
                /* try lookup by number, perhaps this protocol is supported */
                list_for_each_entry(cur, &proto_list, head) {
                        if (cur->protonum == protonum) {
-- 
2.17.1

Reply via email to