From f279ee45832db52fb801e86a929bc53f575cd2f5 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 13 Oct 2016 18:44:14 +0200 Subject: [PATCH] machine: Fix replacement of '_' by '-' in machine property names machine_set_property() replaces '_' by '-' in the property name. Except it fails to replace an initial '_'. Screwed up in commit b0ddb8b. Reproducer: "-M pc,__foo_bar=true" produces "Property '._-foo-bar' not found". Error messages using a mangled name rather than the name the user actually wrote is user-hostile, but that's a different topic. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Eduardo Habkost Signed-off-by: Eduardo Habkost --- vl.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/vl.c b/vl.c index c657acdd3c..1c0b0ba834 100644 --- a/vl.c +++ b/vl.c @@ -2804,17 +2804,16 @@ static int machine_set_property(void *opaque, { Object *obj = OBJECT(opaque); Error *local_err = NULL; - char *c, *qom_name; + char *p, *qom_name; if (strcmp(name, "type") == 0) { return 0; } qom_name = g_strdup(name); - c = qom_name; - while (*c++) { - if (*c == '_') { - *c = '-'; + for (p = qom_name; *p; p++) { + if (*p == '_') { + *p = '-'; } } -- 2.11.0