diff options
author | Markus Armbruster <armbru@redhat.com> | 2016-10-13 18:44:14 +0200 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2016-10-17 15:48:40 -0200 |
commit | f279ee45832db52fb801e86a929bc53f575cd2f5 (patch) | |
tree | 1412bb102e24feea0b46bf14e68aa8c31b3281e6 /vl.c | |
parent | 0975b8b823a888d474fa33821dfe84e6904db197 (diff) | |
download | qemu-f279ee45832db52fb801e86a929bc53f575cd2f5.tar.gz qemu-f279ee45832db52fb801e86a929bc53f575cd2f5.tar.bz2 qemu-f279ee45832db52fb801e86a929bc53f575cd2f5.zip |
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 <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'vl.c')
-rw-r--r-- | vl.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -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 = '-'; } } |