From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buj7G-00046F-4R for qemu-devel@nongnu.org; Thu, 13 Oct 2016 12:44:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1buj7B-0000BT-TW for qemu-devel@nongnu.org; Thu, 13 Oct 2016 12:44:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54492) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buj7B-0000BL-NQ for qemu-devel@nongnu.org; Thu, 13 Oct 2016 12:44:17 -0400 From: Markus Armbruster Date: Thu, 13 Oct 2016 18:44:14 +0200 Message-Id: <1476377054-14572-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH] machine: Fix replacement of '_' by '-' in machine property names List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: marcel@redhat.com, ehabkost@redhat.com, afaerber@suse.de 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 --- vl.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/vl.c b/vl.c index c657acd..1c0b0ba 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.5.5