|
|
@@ -0,0 +1,31 @@
|
|
|
+--- a/lib/ext2fs/ext2fs.h
|
|
|
++++ b/lib/ext2fs/ext2fs.h
|
|
|
+@@ -1212,7 +1212,26 @@
|
|
|
+
|
|
|
+ if (align == 0)
|
|
|
+ align = 8;
|
|
|
+- if (retval = posix_memalign((void **) ptr, align, size)) {
|
|
|
++#ifdef HAVE_POSIX_MEMALIGN
|
|
|
++ retval = posix_memalign((void **)ptr, align, size);
|
|
|
++#else
|
|
|
++#ifdef HAVE_MEMALIGN
|
|
|
++ if ((*(void **)ptr = (void *)memalign(align, size)) == NULL)
|
|
|
++ retval = errno;
|
|
|
++ else
|
|
|
++ retval = 0;
|
|
|
++#else
|
|
|
++#ifdef HAVE_VALLOC
|
|
|
++ if ((*(void **)ptr = valloc(size)) == NULL)
|
|
|
++ retval = errno;
|
|
|
++ else
|
|
|
++ retval = 0;
|
|
|
++#else
|
|
|
++# error "Impossible to allocate aligned memory!"
|
|
|
++#endif /* HAVE_VALLOC */
|
|
|
++#endif /* HAVE_MEMALIGN */
|
|
|
++#endif /* HAVE_POSIX_MEMALIGN */
|
|
|
++ if (retval) {
|
|
|
+ if (retval == ENOMEM)
|
|
|
+ return EXT2_ET_NO_MEMORY;
|
|
|
+ return retval;
|
|
|
+--
|