about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--libdislocator/libdislocator.so.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/libdislocator/libdislocator.so.c b/libdislocator/libdislocator.so.c
index 5246af40..b3a90366 100644
--- a/libdislocator/libdislocator.so.c
+++ b/libdislocator/libdislocator.so.c
@@ -269,13 +269,11 @@ void* realloc(void* ptr, size_t len) {
    a normal request */
 
 int posix_memalign(void** ptr, size_t align, size_t len) {
-   if (!ptr) FATAL("null pointer on posix_memalign()");
-   if ((align % 2) || (align % sizeof(void *))) FATAL("bad alignment on posix_memalign()");
-   if (align >= 4 * sizeof(size_t)) {
-
-     len += align -1;
-
-   }
+   if ((char*)ptr == NULL || *ptr == NULL) 
+     return -1; // why would we do: FATAL("null pointer on posix_memalign()");
+   if ((align % 2) || (align % sizeof(void *)))
+     return -1; // why would we do: FATAL("bad alignment on posix_memalign()");
+   if (align >= 4 * sizeof(size_t)) len += align -1;
 
    *ptr = malloc(len);