Dear qemu developers,
I've noticed about 3 days ago a bug, apparently introduced by the last massive
modifications in blockdev.c, that prevents the use of a cdrom ISO without write
permission, like in "qemu-system-i386 -cdrom /some.iso ...", giving the message
"could not open disk image /bpd/bpd.iso: Could not open file: Permission
denied".
I didn't make a git bisect to identify the offending commit, but, as the
problem seemed too simple, I've searched through the source code for references
to "cdrom", "fopen", "media" and the like, trying to find any clue. My search
was fruitful and I've been succesful in producing and testing the following
patch.
I don't know if it is the best solution, as I don't really know the qemu source
very well, but it works for me.
Thank you, very much.
Edivaldo de Araújo Pereira
Patch:
-------------------------------------------------------------------------------------------------------
diff -rupN a/blockdev.c b/blockdev.c
--- a/blockdev.c 2013-10-14 13:59:59.000000000 -0300
+++ b/blockdev.c 2013-10-14 20:54:42.342329073 -0300
@@ -709,7 +709,7 @@ DriveInfo *drive_init(QemuOpts *all_opts
}
/* copy-on-read is disabled with a warning for read-only devices */
- read_only = qemu_opt_get_bool(legacy_opts, "read-only", false);
+ read_only = ( qemu_opt_get_bool(legacy_opts, "read-only", false) || media
== MEDIA_CDROM );
copy_on_read = qemu_opt_get_bool(legacy_opts, "copy-on-read", false);
if (read_only && copy_on_read) {
-------------------------------------------------------------------------------------------------------