diff --git a/src/qemu.rs b/src/qemu.rs index e794f16..7780e01 100644 --- a/src/qemu.rs +++ b/src/qemu.rs @@ -101,9 +101,12 @@ pub(crate) fn run( let tag = format!("slim{i}"); let dest_b64 = base64::engine::general_purpose::STANDARD.encode(path_str.as_bytes()); + // QEMU's QemuOpts splits on commas — escape literal commas in the + // path as ",," per QEMU convention. + let path_escaped = path_str.replace(',', ",,"); virtfs_args.push("-virtfs".into()); virtfs_args.push(format!( - "local,path={path_str},mount_tag={tag},security_model=mapped-xattr" + "local,path={path_escaped},mount_tag={tag},security_model=mapped-xattr" )); cmdline.push(format!("slim.mount={tag}:{dest_b64}")); }