]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: fix const qualifier warning in blkid_parse_tag_string
authorKarel Zak <kzak@redhat.com>
Thu, 27 Nov 2025 15:28:41 +0000 (16:28 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 27 Nov 2025 15:30:53 +0000 (16:30 +0100)
Fix const qualifier discarded warning in blkid_parse_tag_string().
This warning is reported by gcc 15 which defaults to the C23 standard.

The strchr() function returns a pointer into a const string, so
introduce a separate 'eq' variable to hold this const pointer for
finding the '=' separator. Also move the 'cp' variable declaration
into the block where it's actually used for quote handling.

Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid/src/tag.c

index 178336505fd6b7df2f4aacbb51212ad43f70fe40..f195c0625cfbc44b8fbb6f196f42e50dd3985757 100644 (file)
@@ -202,21 +202,23 @@ errout:
  */
 int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val)
 {
-       char *name, *value, *cp;
+       char *name, *value;
+       const char *eq;
 
        DBG(TAG, ul_debug("trying to parse '%s' as a tag", token));
 
-       if (!token || !(cp = strchr(token, '=')))
+       if (!token || !(eq = strchr(token, '=')))
                return -1;
 
        name = strdup(token);
        if (!name)
                return -1;
-       value = name + (cp - token);
+       value = name + (eq - token);
        *value++ = '\0';
        if (*value == '"' || *value == '\'') {
                char c = *value++;
-               if (!(cp = strrchr(value, c)))
+               char *cp = strrchr(value, c);
+               if (!cp)
                        goto errout; /* missing closing quote */
                *cp = '\0';
        }