about summary refs log tree commit diff
path: root/src/malloc
diff options
context:
space:
mode:
Diffstat (limited to 'src/malloc')
-rw-r--r--src/malloc/aligned_alloc.c2
-rw-r--r--src/malloc/posix_memalign.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/malloc/aligned_alloc.c b/src/malloc/aligned_alloc.c
index 158dba41..c6386629 100644
--- a/src/malloc/aligned_alloc.c
+++ b/src/malloc/aligned_alloc.c
@@ -11,7 +11,7 @@ void *aligned_alloc(size_t align, size_t len)
 	unsigned char *mem, *new, *end;
 	size_t header, footer;
 
-	if ((align & -align & -sizeof(void *)) != align) {
+	if ((align & -align) != align) {
 		errno = EINVAL;
 		return NULL;
 	}
diff --git a/src/malloc/posix_memalign.c b/src/malloc/posix_memalign.c
index 42cf2740..ad4d8f47 100644
--- a/src/malloc/posix_memalign.c
+++ b/src/malloc/posix_memalign.c
@@ -3,6 +3,7 @@
 
 int posix_memalign(void **res, size_t align, size_t len)
 {
+	if (align < sizeof(void *)) return EINVAL;
 	void *mem = aligned_alloc(align, len);
 	if (!mem) return errno;
 	*res = mem;