libxl: constify some local variables for building with glibc 2.43

Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that
causes libxl build failure:

    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    cc1: all warnings being treated as errors

Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
endptr still is needed, to be compatible with the second argument to
strtoul(). Add second variable for this reason.

And while at it, move semicolon to its own line

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
(cherry picked from commit 44da0e3b4f)
This commit is contained in:
Marek Marczykowski-Górecki authored and Andrew Cooper committed 2026-03-17 18:23:50 +00:00
1 parent 2c5f7fd78b
commit 4c8867621b
2 files changed
+13 -10

No files matched your search

+12 -9
View File
@@ -440,29 +440,32 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
str = endptr + 1;
entry = cpuid_find_match(policy, leaf, subleaf);
for (str = endptr + 1; *str != 0;) {
const char *endptrc;
if (str[0] != 'e' || str[2] != 'x') {
return 4;
}
value = str[1] - 'a';
endptr = strchr(str, '=');
if (value > 3 || endptr == NULL) {
endptrc = strchr(str, '=');
if (value > 3 || endptrc == NULL) {
return 4;
}
str = endptr + 1;
endptr = strchr(str, ',');
if (endptr == NULL) {
endptr = strchr(str, 0);
str = endptrc + 1;
endptrc = strchr(str, ',');
if (endptrc == NULL) {
endptrc = strchr(str, 0);
}
if (endptr - str != 32) {
if (endptrc - str != 32) {
return 5;
}
entry->policy[value] = calloc(32 + 1, 1);
strncpy(entry->policy[value], str, 32);
entry->policy[value][32] = 0;
if (*endptr == 0) {
if (*endptrc == 0) {
break;
}
for (str = endptr + 1; *str == ' ' || *str == '\n'; str++);
for (str = endptrc + 1; *str == ' ' || *str == '\n'; str++)
;
}
return 0;
}
+1 -1
View File
@@ -204,7 +204,7 @@ char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
char *libxl__dirname(libxl__gc *gc, const char *s)
{
char *c = strrchr(s, '/');
const char *c = strrchr(s, '/');
if (!c)
return NULL;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.