Skip to contentSkip to conversation

Openjpeg: Fix malloc poison issue, add C++ and threads dependencies

PATCH New Olivier Schonken 2 participants 2 messages Sep 8, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Openjpeg: Fix malloc poison issue, add C++ and threads dependencies

The malloc poison issue has been fixed upstream, this patch will thus only be temporary.

Some of the autobuild issues related to missing g++ compilers and missing threading libraries. Thus the dependency should solve that.

---
 .../0003-avoid-malloc-poisoning-issue.patch        | 53 ++++++++++++++++++++++
 package/openjpeg/Config.in                         |  5 ++
 2 files changed, 58 insertions(+)
 create mode 100644 package/openjpeg/0003-avoid-malloc-poisoning-issue.patch
package/openjpeg/0003-avoid-malloc-poisoning-issue.patch new file +53 -0
new file mode 100644
index 0000000000..f9eeb26184
@@ -0,0 +1,53 @@
+From 51a1dcaa6ed5713520dca36fc58cd9240c08b7ca Mon Sep 17 00:00:00 2001
+From: Even Rouault <[email protected]>
+Date: Thu, 7 Sep 2017 17:52:59 +0200
+Subject: [PATCH] Avoid malloc poisoning issue when including <pthread.h> of
+ uclibc (#1013)
+
+---
+ src/lib/openjp2/thread.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/src/lib/openjp2/thread.c b/src/lib/openjp2/thread.c
+index 8b56aa4d5..af33c2c80 100644
+--- a/src/lib/openjp2/thread.c
++++ b/src/lib/openjp2/thread.c
+@@ -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;
package/openjpeg/Config.in +5 -0
index 738999fed7..65a629f6e9 100644
@@ -1,7 +1,12 @@
 config BR2_PACKAGE_OPENJPEG
 	bool "openjpeg"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  The OpenJPEG library is an open-source JPEG 2000 codec
 	  written in C.
 
 	  http://www.openjpeg.org
+
+comment "openjpeg needs a toolchain w/ C++, threads"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 Openjpeg: Fix malloc poison issue, add C++ and threads dependencies

Hello,

Thanks a lot for looking into this build issue and finding a solution!

"Openjpeg" should be lowercase in the commit title

Quoted 5 lines · Olivier Schonken

The malloc poison issue has been fixed upstream, this patch will thus only be temporary.

Some of the autobuild issues related to missing g++ compilers and missing threading libraries. Thus the dependency should solve that.

You should add a reference to the autobuilder failure being fixed.

package/openjpeg/0003-avoid-malloc-poisoning-issue.patch line 6

Quoted 8 lines

+++ b/package/openjpeg/0003-avoid-malloc-poisoning-issue.patch

package/openjpeg/0003-avoid-malloc-poisoning-issue.patch new file +6 -0
@@ -0,0 +1,53 @@
+From 51a1dcaa6ed5713520dca36fc58cd9240c08b7ca Mon Sep 17 00:00:00 2001
+From: Even Rouault <[email protected]>
+Date: Thu, 7 Sep 2017 17:52:59 +0200
+Subject: [PATCH] Avoid malloc poisoning issue when including <pthread.h> of
+ uclibc (#1013)
+

We need you to add your Signed-off-by here.

package/openjpeg/Config.in line 4

Quoted 9 lines
package/openjpeg/Config.in +2 -0
index 738999fed7..65a629f6e9 100644
@@ -1,7 +1,12 @@
 config BR2_PACKAGE_OPENJPEG
 	bool "openjpeg"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS

Did you make sure that those new dependencies are propagated to the packages that "select BR2_PACKAGE_OPENJPEG" ?

package/openjpeg/Config.in line 12

Quoted 8 lines
package/openjpeg/Config.in +3 -0
 	help
 	  The OpenJPEG library is an open-source JPEG 2000 codec
 	  written in C.
 
 	  http://www.openjpeg.org
+
+comment "openjpeg needs a toolchain w/ C++, threads"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)

We normally write this as:

	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com