
On 05/06/2016 07:54 AM, John Ferlan wrote:
On 05/04/2016 10:56 AM, Cole Robinson wrote:
After this, a default virt-manager VM will startup with a comma in the VM name:
https://bugzilla.redhat.com/show_bug.cgi?id=639926 --- src/qemu/qemu_command.c | 9 ++++----- tests/qemuxml2argvdata/qemuxml2argv-name-escape.args | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-)
FWIW: w/r/t my comment in your v1 about vmagent... It's the "guest_agent" I was thinking about. In any case, I see it uses the chardev path generation code, so I think that's covered by your patch 3.
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index d54d0d1..c2f55b5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4833,11 +4833,10 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager, break;
case VIR_DOMAIN_CHR_TYPE_UNIX: - virBufferAsprintf(&buf, - "socket,id=char%s,path=%s%s", - alias, - dev->data.nix.path, - dev->data.nix.listen ? ",server,nowait" : ""); + virBufferAsprintf(&buf, "socket,id=char%s,path=", alias); + virBufferEscape(&buf, ',', ",", "%s", dev->data.nix.path);
Unless you know/see that the data.nix.path is built using domainChannelTargetDir during qemuBuildChannelsCommandLine it may not be "intuitively obvious" why doing the escape here is necessary...
It's not specific to the autocreated socket path based on domainChannelTargetDir, the user could have passed in a manual path with a comma in it The rule is that any time a user specified string is passed to the qemu command line, we should be escaping commas. <name> happens to trickle out into several other places, but doing this for the unix path is still beneficial regardless of the <name> focus of this series - Cole