[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] bdrv_img_create: Fix segfault
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH] bdrv_img_create: Fix segfault |
Date: |
Mon, 06 Jun 2011 12:00:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 |
Am 02.06.2011 00:34, schrieb Stefan Hajnoczi:
> On Wed, Jun 1, 2011 at 1:05 PM, Kevin Wolf <address@hidden> wrote:
>> Block drivers that don't support creating images don't have a size option.
>> Fail
>> gracefully instead of segfaulting when trying to access the option's value.
>>
>> Signed-off-by: Kevin Wolf <address@hidden>
>> ---
>> block.c | 5 +++--
>> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> A command-line to reproduce the crash would be nice.
qemu-img create -f bochs nbd:foo 32M
It doesn't happen with a file protocol any more since we merge the
create options of the protocol with those of the format (was introduced
with Sheepdog).
> I noticed this line above your fix:
> set_option_parameter_int(param, BLOCK_OPT_SIZE, img_size);
>
> If I follow correctly there should be an "Unknown option 'size'" error
> message before set_option_parameter_int() returns -1 (which we ignore)
> and then crash.
Right, this is what happens.
> Perhaps we should just catch the error when set_option_parameter_int() fails?
We could do that, but the segfault isn't really related to a failing
set_option_parameter_int() but to the failing get_option_parameter(). I
think it's good style not to rely on the error handling of an unrelated
action some lines above.
Adding some error handling there, too, wouldn't hurt, though.
Kevin