Thread (10 messages) 10 messages, 3 authors, 2015-11-03

[PATCH 1/3] recordmcount: fix endianness handling bug for nop_mcount

From: Sergei Shtylyov <hidden>
Date: 2015-10-30 14:35:22
Also in: lkml

Hello.

On 10/30/2015 11:31 AM, Li Bin wrote:
quoted hunk ↗ jump to hunk
In nop_mcount, shdr->sh_offset and welp->r_offset should handle
endianness properly, otherwise it will trigger Segmentation fault
if the recordmcount main and file.o have different endianness.

Cc: <redacted> # 3.0+
Signed-off-by: Li Bin <redacted>
---
  scripts/recordmcount.h | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/scripts/recordmcount.h b/scripts/recordmcount.h
index 49b582a..dda9dba 100644
--- a/scripts/recordmcount.h
+++ b/scripts/recordmcount.h
@@ -376,8 +376,9 @@ static void nop_mcount(Elf_Shdr const *const relhdr,
  			mcountsym = get_mcountsym(sym0, relp, str0);

  		if (mcountsym == Elf_r_sym(relp) && !is_fake_mcount(relp)) {
-			if (make_nop)
-				ret = make_nop((void *)ehdr, shdr->sh_offset + relp->r_offset);
+			if (make_nop) {
+				ret = make_nop((void *)ehdr, _w(shdr->sh_offset) + _w(relp->r_offset));
+			}
    {} not needed here.

MBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help