Add comma escaping for dev->data.file.path in cases
VIR_DOMAIN_CHR_TYPE_DEV and VIR_DOMAIN_CHR_TYPE_PIPE.
Signed-off-by: Anya Harter <aharter@redhat.com>
---
src/qemu/qemu_command.c | 9 +++++----
tests/qemuxml2argvdata/name-escape.args | 4 ++++
tests/qemuxml2argvdata/name-escape.xml | 7 +++++++
tests/qemuxml2argvtest.c | 3 ++-
4 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index bb956a77f4..b764008949 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4975,9 +4975,10 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
break;
case VIR_DOMAIN_CHR_TYPE_DEV:
- virBufferAsprintf(&buf, "%s,id=%s,path=%s",
+ virBufferAsprintf(&buf, "%s,id=%s,path=",
STRPREFIX(alias, "parallel") ? "parport" : "tty",
- charAlias, dev->data.file.path);
+ charAlias);
+ virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path);
break;
case VIR_DOMAIN_CHR_TYPE_FILE:
@@ -4997,8 +4998,8 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
break;
case VIR_DOMAIN_CHR_TYPE_PIPE:
- virBufferAsprintf(&buf, "pipe,id=%s,path=%s", charAlias,
- dev->data.file.path);
+ virBufferAsprintf(&buf, "pipe,id=%s,path=", charAlias);
+ virQEMUBuildBufferEscapeComma(&buf, dev->data.file.path);
break;
case VIR_DOMAIN_CHR_TYPE_STDIO:
diff --git a/tests/qemuxml2argvdata/name-escape.args b/tests/qemuxml2argvdata/name-escape.args
index 5ff8c03db8..4b03068f95 100644
--- a/tests/qemuxml2argvdata/name-escape.args
+++ b/tests/qemuxml2argvdata/name-escape.args
@@ -23,6 +23,10 @@ bar=2/monitor.sock,server,nowait \
-no-acpi \
-boot c \
-usb \
+-chardev tty,id=charserial0,path=/dev/ttyS2,,foo \
+-device isa-serial,chardev=charserial0,id=serial0 \
+-chardev pipe,id=charchannel0,path=/tmp/guestfwd,,foo \
+-netdev user,guestfwd=tcp:10.0.2.1:4600-chardev:charchannel0,id=user-channel0 \
-vnc unix:/tmp/lib/domain--1-foo=1,,bar=2/vnc.sock \
-spice unix,addr=/tmp/lib/domain--1-foo=1,,bar=2/spice.sock \
-vga cirrus \
diff --git a/tests/qemuxml2argvdata/name-escape.xml b/tests/qemuxml2argvdata/name-escape.xml
index 6b93d71798..3f5e1c9829 100644
--- a/tests/qemuxml2argvdata/name-escape.xml
+++ b/tests/qemuxml2argvdata/name-escape.xml
@@ -20,5 +20,12 @@
<graphics type='spice'>
<listen type='socket'/>
</graphics>
+ <serial type='dev'>
+ <source path='/dev/ttyS2,foo'/>
+ </serial>
+ <channel type='pipe'>
+ <source path='/tmp/guestfwd,foo'/>
+ <target type='guestfwd' address='10.0.2.1' port='4600'/>
+ </channel>
</devices>
</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index f44cac9fef..c194ff59c9 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2760,7 +2760,8 @@ mymain(void)
QEMU_CAPS_NAME_GUEST,
QEMU_CAPS_DEVICE_CIRRUS_VGA,
QEMU_CAPS_SPICE,
- QEMU_CAPS_SPICE_UNIX);
+ QEMU_CAPS_SPICE_UNIX,
+ QEMU_CAPS_DEVICE_ISA_SERIAL);
DO_TEST("debug-threads", QEMU_CAPS_NAME_DEBUG_THREADS);
DO_TEST("master-key", QEMU_CAPS_OBJECT_SECRET);
--
2.17.1
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 06/18/2018 01:57 PM, Anya Harter wrote: > Add comma escaping for dev->data.file.path in cases > VIR_DOMAIN_CHR_TYPE_DEV and VIR_DOMAIN_CHR_TYPE_PIPE. > > Signed-off-by: Anya Harter <aharter@redhat.com> > --- > src/qemu/qemu_command.c | 9 +++++---- > tests/qemuxml2argvdata/name-escape.args | 4 ++++ > tests/qemuxml2argvdata/name-escape.xml | 7 +++++++ > tests/qemuxml2argvtest.c | 3 ++- > 4 files changed, 18 insertions(+), 5 deletions(-) > Having tests is awesome! Thanks! Not sure why the bite size tasks omitted VIR_DOMAIN_CHR_TYPE_FILE too. If you want to investigate the FILE case that'd be good - just to make sure we aren't missing any! I'll still push this as is since it's fine, but if the FILE needs something it can be added afterwards. Reviewed-by: John Ferlan <jferlan@redhat.com> John -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On 06/18/2018 07:37 PM, John Ferlan wrote: > > > On 06/18/2018 01:57 PM, Anya Harter wrote: >> Add comma escaping for dev->data.file.path in cases >> VIR_DOMAIN_CHR_TYPE_DEV and VIR_DOMAIN_CHR_TYPE_PIPE. >> >> Signed-off-by: Anya Harter <aharter@redhat.com> >> --- >> src/qemu/qemu_command.c | 9 +++++---- >> tests/qemuxml2argvdata/name-escape.args | 4 ++++ >> tests/qemuxml2argvdata/name-escape.xml | 7 +++++++ >> tests/qemuxml2argvtest.c | 3 ++- >> 4 files changed, 18 insertions(+), 5 deletions(-) >> > > Having tests is awesome! Thanks! > > Not sure why the bite size tasks omitted VIR_DOMAIN_CHR_TYPE_FILE too. > If you want to investigate the FILE case that'd be good - just to make > sure we aren't missing any! I'll still push this as is since it's fine, > but if the FILE needs something it can be added afterwards. VIR_DOMAIN_CHR_TYPE_FILE calls the function qemuBuildChrChardevFileStr and passes the dev->data.file.path into the parameter named fileval which I escape in the second patch. Please let me know if I am missing something here. Thanks, Anya > > Reviewed-by: John Ferlan <jferlan@redhat.com> > > John > -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On 06/19/2018 10:19 AM, Anya Harter wrote: > > > On 06/18/2018 07:37 PM, John Ferlan wrote: >> >> >> On 06/18/2018 01:57 PM, Anya Harter wrote: >>> Add comma escaping for dev->data.file.path in cases >>> VIR_DOMAIN_CHR_TYPE_DEV and VIR_DOMAIN_CHR_TYPE_PIPE. >>> >>> Signed-off-by: Anya Harter <aharter@redhat.com> >>> --- >>> src/qemu/qemu_command.c | 9 +++++---- >>> tests/qemuxml2argvdata/name-escape.args | 4 ++++ >>> tests/qemuxml2argvdata/name-escape.xml | 7 +++++++ >>> tests/qemuxml2argvtest.c | 3 ++- >>> 4 files changed, 18 insertions(+), 5 deletions(-) >>> >> >> Having tests is awesome! Thanks! >> >> Not sure why the bite size tasks omitted VIR_DOMAIN_CHR_TYPE_FILE too. >> If you want to investigate the FILE case that'd be good - just to make >> sure we aren't missing any! I'll still push this as is since it's fine, >> but if the FILE needs something it can be added afterwards. > > VIR_DOMAIN_CHR_TYPE_FILE calls the function qemuBuildChrChardevFileStr > and passes the dev->data.file.path into the parameter named fileval > which I escape in the second patch. > > Please let me know if I am missing something here. > Nope I didn't dig far enough... John -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.