Am 02.06.2011 00:34, schrieb Stefan Hajnoczi: > On Wed, Jun 1, 2011 at 1:05 PM, Kevin Wolf <kw...@redhat.com> 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 <kw...@redhat.com> >> --- >> 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