diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c index 8420b2465f..14f08df33a 100644 --- a/tools/libs/light/libxl_cpuid.c +++ b/tools/libs/light/libxl_cpuid.c @@ -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; } diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c index 2941ca0bbd..d70cfed7d8 100644 --- a/tools/libs/light/libxl_internal.c +++ b/tools/libs/light/libxl_internal.c @@ -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;