Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] prelink: Fix Segmentation fault error when prelink qemu
@ 2018-10-11  4:06 Robert Yang
  2018-10-11  4:06 ` [PATCH 1/1] " Robert Yang
  0 siblings, 1 reply; 2+ messages in thread
From: Robert Yang @ 2018-10-11  4:06 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit d0d55add6cb01252a46d829ade75666920b676fa:

  libxml2: Make it compatible with externalsrc (2018-10-10 14:33:34 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib rbt/prelink
  http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/prelink

Robert Yang (1):
  prelink: Fix Segmentation fault error when prelink qemu

 ...ps.c-check-info-resolvetls-before-use-its.patch | 51 ++++++++++++++++++++++
 meta/recipes-devtools/prelink/prelink_git.bb       |  1 +
 2 files changed, 52 insertions(+)
 create mode 100644 meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch

-- 
2.7.4



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 1/1] prelink: Fix Segmentation fault error when prelink qemu
  2018-10-11  4:06 [PATCH 0/1] prelink: Fix Segmentation fault error when prelink qemu Robert Yang
@ 2018-10-11  4:06 ` Robert Yang
  0 siblings, 0 replies; 2+ messages in thread
From: Robert Yang @ 2018-10-11  4:06 UTC (permalink / raw)
  To: openembedded-core

The info->resolvetls might be NULL according to src/prelink.c:
[snip]
 /* Dynamic linker does not depend on any other library,
    all symbols resolve to themselves with the exception
    of SHN_UNDEF symbols which resolve to 0.  */
if (info->symtab[r_sym].st_shndx == SHN_UNDEF)
  {
    info->resolveent = NULL;
    info->resolvetls = NULL;
[snip]

So we must check it before use its members, otherwise, there might be
Segmentation fault error.

Fixed:
MACHINE = "qemumips"
IMAGE_INSTALL_append = " qemu"
$ bitbake core-image-minimal
[snip]
| /path/to/qemumips-poky-linux/core-image-minimal/1.0-r0/temp/run.prelink_image.1000: line 111:  1010 Segmentation fault      (core dumped)
[snip]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 ...ps.c-check-info-resolvetls-before-use-its.patch | 51 ++++++++++++++++++++++
 meta/recipes-devtools/prelink/prelink_git.bb       |  1 +
 2 files changed, 52 insertions(+)
 create mode 100644 meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch

diff --git a/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch b/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
new file mode 100644
index 0000000..b168824
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch
@@ -0,0 +1,51 @@
+From 2136969e3e196b9cf7f4788340efa4b1d9b39565 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 11 Oct 2018 10:05:52 +0800
+Subject: [PATCH] src/arch-mips.c: check info->resolvetls before use its member
+
+The info->resolvetls might be NULL according to src/prelink.c:
+[snip]
+ /* Dynamic linker does not depend on any other library,
+    all symbols resolve to themselves with the exception
+    of SHN_UNDEF symbols which resolve to 0.  */
+if (info->symtab[r_sym].st_shndx == SHN_UNDEF)
+  {
+    info->resolveent = NULL;
+    info->resolvetls = NULL;
+[snip]
+
+So we must check it before use its members, otherwise, there might be
+Segmentation fault error.
+
+Fixed:
+MACHINE = "qemumips"
+IMAGE_INSTALL_append = " qemu"
+$ bitbake core-image-minimal
+[snip]
+| /path/to/qemumips-poky-linux/core-image-minimal/1.0-r0/temp/run.prelink_image.1000: line 111:  1010 Segmentation fault      (core dumped)
+[snip]
+
+Upstream-Status: Submitted [https://lists.yoctoproject.org/pipermail/yocto/2018-October/042812.html]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/arch-mips.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/arch-mips.c b/src/arch-mips.c
+index ccb1834..02c608f 100644
+--- a/src/arch-mips.c
++++ b/src/arch-mips.c
+@@ -567,7 +567,8 @@ mips_prelink_reloc (struct prelink_info *info, GElf_Addr r_offset,
+       if (dso->ehdr.e_type == ET_EXEC)
+ 	{
+ 	  value = info->resolve (info, r_sym, r_type);
+-	  value += info->resolvetls->offset - TLS_TP_OFFSET;
++	  if (info->resolvetls != NULL)
++	    value += info->resolvetls->offset - TLS_TP_OFFSET;
+ 	  if (r_type == R_MIPS_TLS_TPREL32)
+ 	    mips_prelink_32bit_reloc (dso, rela, value);
+ 	  else
+-- 
+2.7.4
+
diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
index 3f2a2e2..b1261d5 100644
--- a/meta/recipes-devtools/prelink/prelink_git.bb
+++ b/meta/recipes-devtools/prelink/prelink_git.bb
@@ -32,6 +32,7 @@ SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink_sta
            file://prelink.cron.daily \
            file://prelink.default \
            file://macros.prelink \
+           file://0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch \
 "
 UPSTREAM_CHECK_COMMITS = "1"
 
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-10-11  3:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-11  4:06 [PATCH 0/1] prelink: Fix Segmentation fault error when prelink qemu Robert Yang
2018-10-11  4:06 ` [PATCH 1/1] " Robert Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox