[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom
From: |
Programmingkid |
Subject: |
Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom |
Date: |
Wed, 8 Jul 2015 09:14:12 -0400 |
On Jul 8, 2015, at 9:11 AM, Kevin Wolf wrote:
> Am 08.07.2015 um 14:56 hat Programmingkid geschrieben:
>>
>> On Jul 8, 2015, at 7:01 AM, Kevin Wolf wrote:
>>
>>> Am 08.07.2015 um 12:47 hat Laurent Vivier geschrieben:
>>>>
>>>>
>>>> On 08/07/2015 12:31, Kevin Wolf wrote:
>>>>> Am 02.07.2015 um 16:18 hat Laurent Vivier geschrieben:
>>>>>>
>>>>>>
>>>>>> On 02/07/2015 16:03, Paolo Bonzini wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 02/07/2015 15:58, Laurent Vivier wrote:
>>>>>>>> Since any /dev entry can be treated as a raw disk image, it is worth
>>>>>>>> noting which devices can be accessed when and how. /dev/rdisk nodes are
>>>>>>>> character-special devices, but are "raw" in the BSD sense and force
>>>>>>>> block-aligned I/O. They are closer to the physical disk than the buffer
>>>>>>>> cache. /dev/disk nodes, on the other hand, are buffered block-special
>>>>>>>> devices and are used primarily by the kernel's filesystem code.
>>>>>>>
>>>>>>> So the right thing to do would not be just to set need_alignment, but to
>>>>>>> probe it like we do on Linux for BDRV_O_NO_CACHE.
>>>>>>>
>>>>>>> I'm okay with doing the simple thing, but it needs a comment for
>>>>>>> non-BSDers.
>>>>>>
>>>>>> So, what we have to do, in our case, for MacOS X cdrom, is something
>>>>>> like:
>>>>>>
>>>>>> ... GetBSDPath ...
>>>>>> ...
>>>>>> if (flags & BDRV_O_NOCACHE) {
>>>>>> strcat(bsdPath, "r");
>>>>>> }
>>>>>> ...
>>>>>
>>>>> I would avoid such magic. What we could do is rejecting /dev/rdisk nodes
>>>>> without BDRV_O_NOCACHE.
>>>>
>>>> It's not how it works...
>>>>
>>>> Look in hdev_open().
>>>>
>>>> If user provides /dev/cdrom on the command line, in the case of MacOS X,
>>>> QEMU searches for a cdrom drive in the system and set filename to
>>>> /dev/rdiskX according to the result.
>>>
>>> Oh, we're already playing such games... I guess you're right then.
>>>
>>> It even seems to be not only for '/dev/cdrom', but for everything
>>> starting with this string. Does anyone know what's the reason for that?
>>>
>>> Also, I guess before doing strcat() on bsdPath, we should check the
>>> buffer length...
>>
>> By buffer, do you mean the bsdPath variable?
>
> Yes. In theory, bsdPath could be completely filled with the path
> returned by GetBSDPath() because we pass sizeof(bsdPath) as maxPathSize.
> Appending "s0" would then overflow the buffer.
>
> I'll admit that this is rather unlikely to happen, but being careful
> when dealing with strings can never hurt.
>
> Kevin
Ok, after my newest patch has been reviewed, I will add the size checking code.
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, (continued)
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Laurent Vivier, 2015/07/02
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Paolo Bonzini, 2015/07/02
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Laurent Vivier, 2015/07/02
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Programmingkid, 2015/07/02
- Re: [Qemu-block] [PATCH v2] raw-posix.c: remove raw device access for cdrom, Programmingkid, 2015/07/02
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Kevin Wolf, 2015/07/08
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Laurent Vivier, 2015/07/08
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Kevin Wolf, 2015/07/08
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Programmingkid, 2015/07/08
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Kevin Wolf, 2015/07/08
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom,
Programmingkid <=
- Re: [Qemu-block] [PATCH] raw-posix.c: remove raw device access for cdrom, Laurent Vivier, 2015/07/08