summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMatthieu Darbois <mayeut@users.noreply.github.com>2016-01-06 23:15:05 +0100
committerMatthieu Darbois <mayeut@users.noreply.github.com>2016-01-06 23:15:05 +0100
commit0dd44e7dba540e69114a24c81e9190786ed32fed (patch)
tree41b58d90a04704e29c8d8bf1764e6265f8f6cc27 /src/lib
parenta205f703283d42e1989da3670cb1c4bb5d8ae193 (diff)
parent9cad6bc1f68be54189c6db8a7fcef6f994daf891 (diff)
Merge pull request #687 from stweil/memalign
Fix fatal crash on 64 bit Linux
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/opj_malloc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/openjp2/opj_malloc.c b/src/lib/openjp2/opj_malloc.c
index 3c8cedf7..e04db912 100644
--- a/src/lib/openjp2/opj_malloc.c
+++ b/src/lib/openjp2/opj_malloc.c
@@ -1,6 +1,6 @@
/*
- * The copyright in this software is being made available under the 2-clauses
- * BSD License, included below. This software may be subject to other third
+ * The copyright in this software is being made available under the 2-clauses
+ * BSD License, included below. This software may be subject to other third
* party and contributor rights, including patent rights, and no such rights
* are granted under this license.
*
@@ -32,6 +32,10 @@
#define OPJ_SKIP_POISON
#include "opj_includes.h"
+#if defined(OPJ_HAVE_MALLOC_H) && defined(OPJ_HAVE_MEMALIGN)
+# include <malloc.h>
+#endif
+
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t) -1)
#endif
@@ -68,7 +72,7 @@ static INLINE void *opj_aligned_alloc_n(size_t alignment, size_t size)
/*
* Generic aligned malloc implementation.
* Uses size_t offset for the integer manipulation of the pointer,
- * as uintptr_t is not available in C89 to do
+ * as uintptr_t is not available in C89 to do
* bitwise operations on the pointer itself.
*/
alignment--;
@@ -78,7 +82,7 @@ static INLINE void *opj_aligned_alloc_n(size_t alignment, size_t size)
/* Room for padding and extra pointer stored in front of allocated area */
size_t overhead = alignment + sizeof(void *);
-
+
/* let's be extra careful */
assert(alignment <= (SIZE_MAX - sizeof(void *)));
@@ -151,7 +155,7 @@ static INLINE void *opj_aligned_realloc_n(void *ptr, size_t alignment, size_t ne
if (new_size > SIZE_MAX - overhead) {
return NULL;
}
-
+
oldmem = ((void**) ptr)[-1];
newmem = (OPJ_UINT8*)realloc(oldmem, new_size + overhead);
if (newmem == NULL) {