diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 8b560ed32e238a71bff0529907232ecc630701a9..6a95f31d5064871a00dfee8ad23adcd56ac887e3 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -85,6 +85,7 @@ extern int cacheflush(char *addr, int nbytes, int cache); #include <inttypes.h> #include <stdio.h> #include <stdlib.h> +#include <malloc.h> #include <string.h> #include <time.h> #include <unistd.h> @@ -8469,9 +8470,9 @@ mdb_env_copyfd1(MDB_env *env, HANDLE fd) #else pthread_mutex_init(&my.mc_mutex, NULL); pthread_cond_init(&my.mc_cond, NULL); - rc = posix_memalign((void **)&my.mc_wbuf[0], env->me_os_psize, MDB_WBUF*2); - if (rc) - return rc; + my.mc_wbuf[0] = memalign(env->me_os_psize, MDB_WBUF*2); + if (my.mc_wbuf[0] == NULL) + return errno; #endif memset(my.mc_wbuf[0], 0, MDB_WBUF*2); my.mc_wbuf[1] = my.mc_wbuf[0] + MDB_WBUF;