[5/5] musl: Fix out of bounds data access in dlopen

Message ID 20190301032112.38191-5-raj.khem@gmail.com
State New
Headers show
Series
  • [V3,1/5] bitbake.conf: Use -Og in DEBUG_OPTIMIZATION
Related show

Commit Message

Khem Raj March 1, 2019, 3:21 a.m.
Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 .../musl/musl/out_of_bounds_read.patch        | 20 +++++++++++++++++++
 meta/recipes-core/musl/musl_git.bb            |  1 +
 2 files changed, 21 insertions(+)
 create mode 100644 meta/recipes-core/musl/musl/out_of_bounds_read.patch

-- 
2.21.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-core/musl/musl/out_of_bounds_read.patch b/meta/recipes-core/musl/musl/out_of_bounds_read.patch
new file mode 100644
index 0000000000..a681cc284e
--- /dev/null
+++ b/meta/recipes-core/musl/musl/out_of_bounds_read.patch
@@ -0,0 +1,20 @@ 
+Fix out of bounds read
+
+self->dtv hasn't been extended yet
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff --git a/ldso/dynlink.c b/ldso/dynlink.c
+index e2c3259f..b23ea0df 100644
+--- a/ldso/dynlink.c
++++ b/ldso/dynlink.c
+@@ -1374,7 +1376,7 @@ static void install_new_tls(void)
+ 	}
+ 	/* Install new dtls into the enlarged, uninstalled dtv copies. */
+ 	for (p=head; ; p=p->next) {
+-		if (!p->tls_id || self->dtv[p->tls_id]) continue;
++		if (p->tls_id <= old_cnt) continue;
+ 		unsigned char *mem = p->new_tls;
+ 		for (j=0; j<i; j++) {
+ 			unsigned char *new = mem;
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index f1052278c8..6a72b7d3bc 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -15,6 +15,7 @@  PV = "${BASEVER}+git${SRCPV}"
 SRC_URI = "git://git.musl-libc.org/musl \
            file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
            file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
+           file://out_of_bounds_read.patch \
           "
 
 S = "${WORKDIR}/git"