]> git.ipfire.org Git - thirdparty/ipset.git/commitdiff
When parsing protocols by number, do not check it in /etc/protocols.
authorJozsef Kadlecsik <kadlec@netfilter.org>
Tue, 27 Jul 2021 10:16:47 +0000 (12:16 +0200)
committerJozsef Kadlecsik <kadlec@netfilter.org>
Tue, 27 Jul 2021 10:16:47 +0000 (12:16 +0200)
Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
lib/parse.c

index aabf2a8fdbdc3ec9429c611dab360abe948edfde..974eaf868daeecfe2a1ef6cc34ae9864293bb872 100644 (file)
@@ -493,13 +493,13 @@ ipset_parse_proto(struct ipset_session *session,
        assert(str);
 
        if (string_to_u8(session, str, &protonum, IPSET_WARNING) == 0)
-               protoent = getprotobynumber(protonum);
-       else {
-               /* No error, so reset false error messages */
-               ipset_session_report_reset(session);
-               protoent = getprotobyname(strcasecmp(str, "icmpv6") == 0
-                                         ? "ipv6-icmp" : str);
-       }
+               return ipset_session_data_set(session, opt, &protonum);
+
+       /* No error, so reset false error messages */
+       ipset_session_report_reset(session);
+       protoent = getprotobyname(strcasecmp(str, "icmpv6") == 0
+                                 ? "ipv6-icmp" : str);
+
        if (protoent == NULL)
                return syntax_err("cannot parse '%s' "
                                  "as a protocol", str);