diff options
Diffstat (limited to 'lib/libc/gen/memalign.c')
-rw-r--r-- | lib/libc/gen/memalign.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/libc/gen/memalign.c b/lib/libc/gen/memalign.c index 4f5ea2fd61fd..dc0ad34a117b 100644 --- a/lib/libc/gen/memalign.c +++ b/lib/libc/gen/memalign.c @@ -35,5 +35,12 @@ __FBSDID("$FreeBSD$"); void * memalign(size_t align, size_t size) { - return (aligned_alloc(align, roundup(size, align))); + /* + * glibc allows align == 0, but that is not valid for roundup. + * Just pass through to malloc in that case. + */ + if (align != 0) + return (aligned_alloc(align, roundup(size, align))); + else + return (malloc(size)); } |