Il 09/04/2013 14:17, Juan Quintela ha scritto:
>> > This test assumes that it makes sense to call qemu_get_byte on a
>> > write-opened QEMUFile.  This is not true anymore after this patch.
>> > After eliminating is_write, the right thing to do is abort.
> 
> But this would not abort,  it would do a segmenation fault!
> 
> I would not complain to a:
> 
> assert(!f->ops->get_buffer);
> 
> It would told us from where we got the "invalid" call,  but this removal
> will change a "silent fail" (that I don't like either) to a segmentation
> fault (that is even worse).

It would still assert if you open a file in the wrong mode:

-    if (!f->ops->get_buffer)
-        return;
-
-    if (f->is_write)
-        abort();
+    assert(!qemu_file_is_writable(f));

It would segfault if you declare the QEMUFileOps wrong (e.g. no *_buffer
operation), but that's a bug in the QEMUFile implementation rather than
the usage.  I think a segfault is acceptable for that.

Paolo

Reply via email to