
On Fri, Mar 27, 2020 at 16:51:20 +0100, Peter Krempa wrote:
Look for the questionmark in the name and move the contents into the query portion so that we format the URI back properly.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_block.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 648c3f1026..c51fb2b6ea 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -429,12 +429,18 @@ qemuBlockStorageSourceGetURI(virStorageSourcePtr src) }
if (src->path) { + char *query; if (src->volume) { uri->path = g_strdup_printf("/%s/%s", src->volume, src->path); } else { uri->path = g_strdup_printf("%s%s", src->path[0] == '/' ? "" : "/", src->path); } + + if ((query = strchr(uri->path, '?'))) { + uri->query = g_strdup(query + 1); + *query = '\0'; + }
This would be quite fragile I'm afraid. We should only do this when we know we got src->path from a URI with a query string, otherwise we could find a random '?' possibly used in a file's name. Jirka