|
| From: | Gerd Hoffmann |
| Subject: | Re: [Qemu-devel] [PATCH] use qemu_malloc and friends consistently |
| Date: | Fri, 29 May 2009 15:46:06 +0200 |
| User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Lightning/1.0pre Thunderbird/3.0b2 |
On 05/29/09 15:07, Paul Brook wrote:
The best way to find broken code is to have qemu_malloc(0) abort, and avoid ever trying to allocate a zero size block.
Forces all call sizes where size=0 is a perfectly legal case add extra code to prevent qemu from aborting, i.e. replace
ptr = qemu_malloc(len);
with
if (len) {
ptr = qemu_malloc(len);
} else {
ptr = NULL; /* make sure we don't pass garbage to qemu_free() */
}
If you want maximize chances of catching accidental mistakes as early as possible then you should have malloc(0) abort, because it probably means someone forgot tho consider the empty case.
I don't share the assumption that malloc(0) is a bug in most cases. And on the other hand the slightly different behavior might actually introduce bugs because people assume qemu_malloc() works like malloc().
cheers, Gerd
| [Prev in Thread] | Current Thread | [Next in Thread] |