]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
src: fix discards 'const' qualifier
authorRudi Heitbaum <rudi@heitbaum.com>
Fri, 20 Feb 2026 09:37:46 +0000 (09:37 +0000)
committerFlorian Westphal <fw@strlen.de>
Sun, 22 Feb 2026 18:07:47 +0000 (19:07 +0100)
argv is passed by parse_change_counters_rule and do_parse to parse_rule_range
as a const char. parse_rule_range modifies thepassed in argv, so pass as
non const so that it can be modified without warning.

Fixes:
iptables/xshared.c: In function 'parse_rule_range':
iptables/xshared.c:912:23: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 912 |         char *colon = strchr(argv, ':'), *buffer;
     |                       ^~~~~~

p is used as the return from strchr(sctp_chunk_names[i].valid_flags)
which is a const char. Declare p as a const char * pointer for use
addressing the warning.

Fixes:
extensions/libxt_sctp.c: In function 'parse_sctp_chunk':
extensions/libxt_sctp.c:211:40: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  211 |                                 if ((p = strchr(sctp_chunk_names[i].valid_flags,
      |                                        ^

next is used as the return from strchr(loop) which is a const char.
Declare next as a const char * pointer for use addressing the warning.

Fixes:
 libxtables/xtables.c: In function 'xtables_ipparse_multiple':
 libxtables/xtables.c:1767:22: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 1767 |                 next = strchr(loop, ',');
      |                      ^
 libxtables/xtables.c: In function 'xtables_ip6parse_multiple':
 libxtables/xtables.c:2066:22: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 2066 |                 next = strchr(loop, ',');
      |                      ^

Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
extensions/libxt_sctp.c
iptables/xshared.c
libxtables/xtables.c

index 6b0024023cd262f4e4088aa02b3e529272664fb2..895a3e8a83ac63a8fe13622db6ceea7d70e4b285 100644 (file)
@@ -205,7 +205,7 @@ parse_sctp_chunk(struct xt_sctp_info *einfo,
                if (chunk_flags) {
                        DEBUGP("Chunk flags %s\n", chunk_flags);
                        for (j = 0; j < strlen(chunk_flags); j++) {
-                               char *p;
+                               const char *p;
                                int bit;
 
                                if ((p = strchr(sctp_chunk_names[i].valid_flags, 
index b941b8dfd20f7c6105d29684ed1a81e1eabec83b..26e91e370eb8493ebc70c21aef7ba25507cdcc5f 100644 (file)
@@ -907,7 +907,7 @@ static int parse_rulenumber(const char *rule)
        return rulenum;
 }
 
-static void parse_rule_range(struct xt_cmd_parse *p, const char *argv)
+static void parse_rule_range(struct xt_cmd_parse *p, char *argv)
 {
        char *colon = strchr(argv, ':'), *buffer;
 
index f872cc69cee9d35513ea567e5fff9e35fbd0c450..51706dc456466acd7e3d653e41482c8adf90d5c4 100644 (file)
@@ -1747,7 +1747,8 @@ void xtables_ipparse_multiple(const char *name, struct in_addr **addrpp,
                               struct in_addr **maskpp, unsigned int *naddrs)
 {
        struct in_addr *addrp;
-       char buf[256], *p, *next;
+       char buf[256], *p;
+       const char *next;
        unsigned int len, i, j, n, count = 1;
        const char *loop = name;
 
@@ -2046,7 +2047,8 @@ xtables_ip6parse_multiple(const char *name, struct in6_addr **addrpp,
 {
        static const struct in6_addr zero_addr;
        struct in6_addr *addrp;
-       char buf[256], *p, *next;
+       char buf[256], *p;
+       const char *next;
        unsigned int len, i, j, n, count = 1;
        const char *loop = name;