Avoid malloc poisoning issue when including <pthread.h> of uclibc (#1013)
authorEven Rouault <even.rouault@spatialys.com>
Thu, 7 Sep 2017 15:52:59 +0000 (17:52 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Thu, 7 Sep 2017 15:52:59 +0000 (17:52 +0200)
src/lib/openjp2/thread.c

index 8b56aa4d5ccfefe29b89ec3ad73878ec1bd49001..af33c2c8062ffefd404a6c523c58522bce2389f5 100644 (file)
@@ -29,9 +29,6 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "opj_includes.h"
-
-#include "thread.h"
 #include <assert.h>
 
 #ifdef MUTEX_win32
@@ -46,6 +43,8 @@
 #include <windows.h>
 #include <process.h>
 
+#include "opj_includes.h"
+
 OPJ_BOOL OPJ_CALLCONV opj_has_thread_support(void)
 {
     return OPJ_TRUE;
@@ -289,6 +288,10 @@ void opj_thread_join(opj_thread_t* thread)
 #include <stdlib.h>
 #include <unistd.h>
 
+/* Moved after all system includes, and in particular pthread.h, so as to */
+/* avoid poisoning issuing with malloc() use in pthread.h with ulibc (#1013) */
+#include "opj_includes.h"
+
 OPJ_BOOL OPJ_CALLCONV opj_has_thread_support(void)
 {
     return OPJ_TRUE;
@@ -425,6 +428,8 @@ void opj_thread_join(opj_thread_t* thread)
 #else
 /* Stub implementation */
 
+#include "opj_includes.h"
+
 OPJ_BOOL OPJ_CALLCONV opj_has_thread_support(void)
 {
     return OPJ_FALSE;