[PATCH libXi] Allocate enough memory for raw events + extra data.
Alan Coopersmith
alan.coopersmith at oracle.com
Tue May 3 08:59:43 PDT 2011
On 05/ 2/11 11:00 PM, Jeremy Huddleston wrote:
>> http://people.freedesktop.org/~jeremyhu/analyzer/yuffie/20110429-1617/libXi/report-yDDyYj.html#EndPath
>> "undefined allocation of 0 bytes" would be a server bug afaict
>
> I dunno... is there anywhere that we guarantee that Xmalloc(0) returns NULL? If so, then the macro should probably be ((size) > 0 ? malloc(size) : NULL) ... hopefully there is nothing actually using side-effects inside of Xmalloc(...) ...
We guarantee Xmalloc(0) returns non-NULL - from <X11/Xlibint.h>:
/*
* Note that some machines do not return a valid pointer for malloc(0), in
* which case we provide an alternate under the control of the
* define MALLOC_0_RETURNS_NULL. This is necessary because some
* Xlib code expects malloc(0) to return a valid pointer to storage.
*/
#ifdef MALLOC_0_RETURNS_NULL
# define Xmalloc(size) malloc(((size) == 0 ? 1 : (size)))
# define Xrealloc(ptr, size) realloc((ptr), ((size) == 0 ? 1 : (size)))
# define Xcalloc(nelem, elsize) calloc(((nelem) == 0 ? 1 : (nelem)), (elsize))
#else
# define Xmalloc(size) malloc((size))
# define Xrealloc(ptr, size) realloc((ptr), (size))
# define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
#endif
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Platform Engineering: X Window System
More information about the xorg-devel
mailing list