[Mesa-dev] [PATCH] posix_memalign return value check

pontus lidman pontus.lidman at 27m.se
Fri Nov 26 04:57:11 PST 2010


Dear Developers,

I would like to propose the patch below to
http://cgit.freedesktop.org/mesa/mesa/plain/src/mesa/main/imports.c

The problem: if posix_memalign returns an error (e.g. ENOMEM), the
function will return an uninitialized value (contents of 'mem'
pointer) as the allocated address, instead of NULL. In my case this
lead to segmentation violations later in the program when calling
other Mesa functions. This happened on linux 2.6.32.

Regards,

Pontus

-- 
Pontus Lidman
Software Manager
27M Technologies
http://www.27m.se


--- imports.c	2010-11-26 11:21:38.528555117 +0100
+++ imports.c.fixed	2010-11-26 11:22:31.870648465 +0100
@@ -88,7 +88,8 @@
 #if defined(HAVE_POSIX_MEMALIGN)
    void *mem;
    int err = posix_memalign(& mem, alignment, bytes);
-   (void) err;
+   if (err)
+       return NULL;
    return mem;
 #elif defined(_WIN32) && defined(_MSC_VER)
    return _aligned_malloc(bytes, alignment);


More information about the mesa-dev mailing list