glibc 2.42 has const-preserving functions.

This leads to warnings when there is a const argument and an assignment
to a non-const variable. Example with GCC 16.0.1 and glibc 2.43 on
Fedora Rawhide.

lib/daemon-unix.c: In function 'daemon_set_new_user':
lib/daemon-unix.c:984:17:
error: initialization discards 'const' qualifier from pointer target type
[-Werror=discarded-qualifiers]
  984 |     char *pos = strchr(user_spec, ':');
      |                 ^~~~~~

Fix by using const variables.

Signed-off-by: Kevin Traynor <[email protected]>
---
 lib/daemon-unix.c    | 4 ++--
 lib/odp-util.c       | 4 ++--
 lib/stream-ssl.c     | 2 +-
 ovsdb/ovsdb-server.c | 9 +++++----
 4 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/lib/daemon-unix.c b/lib/daemon-unix.c
index 86adc9c19..52f977ec8 100644
--- a/lib/daemon-unix.c
+++ b/lib/daemon-unix.c
@@ -982,5 +982,5 @@ void
 daemon_set_new_user(const char *user_spec)
 {
-    char *pos = strchr(user_spec, ':');
+    const char *pos = strchr(user_spec, ':');
     size_t init_bufsize, bufsize;
 
@@ -1037,5 +1037,5 @@ daemon_set_new_user(const char *user_spec)
 
     if (pos) {
-        char *grpstr = pos + 1;
+        const char *grpstr = pos + 1;
         grpstr += strspn(grpstr, " \t\r\n");
 
diff --git a/lib/odp-util.c b/lib/odp-util.c
index e004b7964..841f7d9d4 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -1986,5 +1986,5 @@ scan_ct_nat(const char *s, struct ct_nat_params *p)
 
         if (ovs_scan_len(s, &n, "(")) {
-            char *end;
+            const char *end;
             int end_n;
 
@@ -2107,5 +2107,5 @@ parse_conntrack_action(const char *s_, struct ofpbuf 
*actions)
         bool have_nat = false;
         size_t start;
-        char *end;
+        const char *end;
 
         memset(&ct_label, 0, sizeof(ct_label));
diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c
index 4470bca54..c8eb26b2a 100644
--- a/lib/stream-ssl.c
+++ b/lib/stream-ssl.c
@@ -1290,5 +1290,5 @@ stream_ssl_set_protocols(const char *arg)
         {"TLSv1.3", TLS1_3_VERSION,      false},
     };
-    char *dash = strchr(arg, '-');
+    const char *dash = strchr(arg, '-');
     bool or_later = false;
     int len = strlen(arg);
diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c
index 86b0dc7b8..d4ed9ab32 100644
--- a/ovsdb/ovsdb-server.c
+++ b/ovsdb/ovsdb-server.c
@@ -420,4 +420,5 @@ parse_relay_args(const char *arg, char **name, char 
**remote)
     const char *relay_prefix = "relay:";
     const int relay_prefix_len = strlen(relay_prefix);
+    const char *remote_colon;
     bool is_relay;
 
@@ -427,13 +428,13 @@ parse_relay_args(const char *arg, char **name, char 
**remote)
     }
 
-    *remote = strchr(arg + relay_prefix_len, ':');
+    remote_colon = strchr(arg + relay_prefix_len, ':');
 
-    if (!*remote || (*remote)[0] == '\0') {
+    if (!remote_colon || (remote_colon)[0] == '\0') {
         *remote = NULL;
         return false;
     }
     arg += relay_prefix_len;
-    *name = xmemdup0(arg, *remote - arg);
-    *remote = xstrdup(*remote + 1);
+    *name = xmemdup0(arg, remote_colon - arg);
+    *remote = xstrdup(remote_colon + 1);
     return true;
 }
-- 
2.52.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to