From 651416182dc65d75e91cadfec65dd72f9ff07846 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 4 Jul 2013 23:54:12 -0400 Subject: move alignment check from aligned_alloc to posix_memalign C11 has no requirement that the alignment be a multiple of sizeof(void*), and in fact seems to require any "valid alignment supported by the implementation" to work. since the alignment of char is 1 and thus a valid alignment, an alignment argument of 1 should be accepted. --- src/malloc/posix_memalign.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/malloc/posix_memalign.c') 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; -- cgit v1.2.1