From: Jiri Denemark Date: Tue, 13 Apr 2010 16:59:14 +0000 (+0200) Subject: Deal with CPU models in [] X-Git-Tag: v0.8.1~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e07314f4c12a9874bf55615b0a947e4e2df25287;p=thirdparty%2Flibvirt.git Deal with CPU models in [] Qemu committed a patch which list some CPU names in [] when asked for supported CPUs (qemu -cpu ?). Yet, it needs such CPUs to be passed without those square braces. When probing for supported CPU models, we can just strip the square braces and pretend we have never seen them. --- diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 355fdb9a1e..5dc57eac2f 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -628,7 +628,9 @@ typedef int const char ***retcpus); /* Format: - * + * + * qemu-0.13 encloses some model names in []: + * [] */ static int qemudParseX86Models(const char *output, @@ -661,15 +663,22 @@ qemudParseX86Models(const char *output, continue; if (retcpus) { + unsigned int len; + if (VIR_REALLOC_N(cpus, count + 1) < 0) goto error; if (next) - cpus[count] = strndup(p, next - p - 1); + len = next - p - 1; else - cpus[count] = strdup(p); + len = strlen(p); + + if (len > 2 && *p == '[' && p[len - 1] == ']') { + p++; + len -= 2; + } - if (!cpus[count]) + if (!(cpus[count] = strndup(p, len))) goto error; } count++;