Excerpts from Markus Armbruster's message of Mon Nov 30 11:55:34 -0200 2009: > Commit a7d27b53 made zero-sized allocations a fatal error, deviating > from ISO C's malloc() & friends. Revert that, but take care never to > return a null pointer, like malloc() & friends may do (it's > implementation defined), because that's another source of bugs. > > Rationale: while zero-sized allocations might occasionally be a sign of > something going wrong, they can also be perfectly legitimate. The > change broke such legitimate uses. We've found and "fixed" at least one > of them already (commit eb0b64f7, also reverted by this patch), and > another one just popped up: the change broke qcow2 images with virtual > disk size zero, i.e. images that don't hold real data but only VM state > of snapshots. > > If a change breaks two uses, it probably breaks more. As a quick check, > I reviewed the first six of more than 200 uses of qemu_mallocz(), > qemu_malloc() and qemu_realloc() that don't have an argument of the form > sizeof(...) or similar:
Acked-by: Eduardo Habkost <ehabk...@redhat.com> This also makes qemu_realloc(NULL, size) completely equivalent to qemu_malloc(size), and that's a good thing. -- Eduardo