This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Misinterpreted FILE note for 32bit core files in readelf


On Thu, 2014-04-10 at 10:42 +0200, Markus Engel wrote:
> For 32bit core files, the FILE note is misinterpreted (tested in Version 
> 0.158 and git with readelf being a 64 and 32 bit binary), here is an 
> example output:
> CORE                  72  FILE
>      2 files:
>        00000000-080eb000 36d67b6ccd38000 135180288    gel/z/a.out
>      Not enough data in NT_FILE note.
> 
> In readelf.c:handle_file_note, count and page_size are already 
> interpreted as 64 bit values, which advances ptr by 2*8 instead of 2*4.
> I traced this further to buf_read_ulong, where u has a size of 8, which 
> is given to convert, returning data + 8.
> Besides tracing these things I don't know how to fix it, mostly because 
> I don't know where exactly things go an unintended way :)

Actually it seems you pinpointed the cause exactly. The trouble is
indeed that buf_read_ulong passes 8 as size to convert while the size of
a long in the core file is 4. The attached patch fixes this and adds an
explicit testcase for a i686 core file. CCed Petr who originally added
the support to double check I didn't misinterpret the intention of
buf_read_ulong calling convert.

Thanks,

Mark
>From 19c7d40ed70f4199b362cae91f755a4c037eb8d4 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mjw@redhat.com>
Date: Thu, 10 Apr 2014 15:02:53 +0200
Subject: [PATCH] readelf: convert up to a target long in buf_read_ulong.

Add a i686 corefile test.

Reported-by: Markus Engel <m_engel@cs.uni-kl.de>
Signed-off-by: Mark Wielaard <mjw@redhat.com>
---
 src/ChangeLog                       |    4 ++
 src/readelf.c                       |    2 +-
 tests/ChangeLog                     |    6 +++
 tests/Makefile.am                   |    2 +-
 tests/run-readelf-mixed-corenote.sh |   67 ++++++++++++++++++++++++++++++++++-
 tests/testfile_i686_core.bz2        |  Bin 0 -> 15980 bytes
 6 files changed, 78 insertions(+), 3 deletions(-)
 create mode 100644 tests/testfile_i686_core.bz2

diff --git a/src/ChangeLog b/src/ChangeLog
index c166267..a6218e2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-10  Mark Wielaard  <mjw@redhat.com>
+
+	* readelf.c (buf_read_ulong): Pass actual long size to convert.
+
 2014-03-05  Mark Wielaard  <mjw@redhat.com>
 
 	* readelf.c (attr_callback): Print DW_FORM_sdata values as signed
diff --git a/src/readelf.c b/src/readelf.c
index d2efbae..ff8048e 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -8736,7 +8736,7 @@ buf_read_ulong (Elf *core, unsigned char const **ptrp, unsigned char const *end,
     uint32_t u32;
   } u;
 
-  *ptrp = convert (core, ELF_T_ADDR, 1, &u, *ptrp, sizeof u);
+  *ptrp = convert (core, ELF_T_ADDR, 1, &u, *ptrp, sz);
 
   if (sz == 4)
     *retp = u.u32;
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 9b0e7ac..bdba1d9 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-10  Mark Wielaard  <mjw@redhat.com>
+
+	* testfile_i686_core.bz2: New test file.
+	* run-readelf-mixed-corenote.sh: Add testfile_i686_core test.
+	* Makefile.am (EXTRA_DIST): Add testfile_i686_core.bz2
+
 2014-03-11  Josh Stone  <jistone@redhat.com>
 
 	* testfilebaxmin.bz2: New testfile.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5e64095..04be7f0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -249,7 +249,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
 	     testfile_parameter_ref.c testfile_parameter_ref.bz2 \
 	     testfile_entry_value.c testfile_entry_value.bz2 \
 	     testfile_implicit_value.c testfile_implicit_value.bz2 \
-	     testfile_aarch64_core.bz2 \
+	     testfile_aarch64_core.bz2 testfile_i686_core.bz2 \
 	     run-funcretval.sh funcretval_test.c funcretval_test_aarch64.bz2 \
 	     run-backtrace-data.sh run-backtrace-dwarf.sh cleanup-13.c \
 	     run-backtrace-native.sh run-backtrace-native-biarch.sh \
diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh
index c176e28..01e4594 100755
--- a/tests/run-readelf-mixed-corenote.sh
+++ b/tests/run-readelf-mixed-corenote.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2012, 2013 Red Hat, Inc.
+# Copyright (C) 2012, 2013, 2014 Red Hat, Inc.
 # This file is part of elfutils.
 #
 # This file is free software; you can redistribute it and/or modify
@@ -425,4 +425,69 @@ Note segment of 2512 bytes at offset 0x270:
     DBGWVR15_EL1: 0x0000000000000000, DBGWCR15_EL1: 0x00000000
 EOF
 
+# To reproduce this core dump, do this on an i686 machine:
+# $ gcc -x c <(echo 'int main () { return *(int *)0x12345678; }')
+# $ ./a.out
+testfiles testfile_i686_core
+testrun_compare ${abs_top_builddir}/src/readelf -n testfile_i686_core <<\EOF
+
+Note segment of 1000 bytes at offset 0x214:
+  Owner          Data size  Type
+  CORE                 144  PRSTATUS
+    info.si_signo: 11, info.si_code: 0, info.si_errno: 0, cursig: 11
+    sigpend: <>
+    sighold: <>
+    pid: 27395, ppid: 1130, pgrp: 27395, sid: 1130
+    utime: 0.000000, stime: 0.001000, cutime: 0.000000, cstime: 0.000000
+    orig_eax: -1, fpvalid: 0
+    ebx:     1334976512  ecx:    -1239415396  edx:    -1079283900
+    esi:              0  edi:              0  ebp:     0xbfab6f18
+    eax:      305419896  eip:     0x08048408  eflags:  0x00010246
+    esp:     0xbfab6f18
+    ds: 0x007b  es: 0x007b  fs: 0x0000  gs: 0x0033  cs: 0x0073  ss: 0x007b
+  CORE                 124  PRPSINFO
+    state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00000200
+    uid: 1000, gid: 1000, pid: 27395, ppid: 1130, pgrp: 27395, sid: 1130
+    fname: a.out, psargs: ./a.out 
+  CORE                 128  SIGINFO
+    si_signo: 11, si_errno: 0, si_code: 1
+    fault address: 0x12345678
+  CORE                 160  AUXV
+    SYSINFO: 0xb77fc414
+    SYSINFO_EHDR: 0xb77fc000
+    HWCAP: 0x780abfd  <fpu de pse tsc msr pae mce cx8 apic sep pge cmov mmx fxsr sse sse2>
+    PAGESZ: 4096
+    CLKTCK: 100
+    PHDR: 0x8048034
+    PHENT: 32
+    PHNUM: 9
+    BASE: 0
+    FLAGS: 0
+    ENTRY: 0x80482f0
+    UID: 1000
+    EUID: 1000
+    GID: 1000
+    EGID: 1000
+    SECURE: 0
+    RANDOM: 0xbfab70eb
+    EXECFN: 0xbfab7ff4
+    PLATFORM: 0xbfab70fb
+    NULL
+  CORE                 275  FILE
+    9 files:
+      08048000-08049000 00000000 4096                /tmp/a.out
+      08049000-0804a000 00000000 4096                /tmp/a.out
+      0804a000-0804b000 00001000 4096                /tmp/a.out
+      4f744000-4f763000 00000000 126976              /usr/lib/ld-2.18.so
+      4f764000-4f765000 0001f000 4096                /usr/lib/ld-2.18.so
+      4f765000-4f766000 00020000 4096                /usr/lib/ld-2.18.so
+      4f768000-4f920000 00000000 1802240             /usr/lib/libc-2.18.so
+      4f920000-4f922000 001b8000 8192                /usr/lib/libc-2.18.so
+      4f922000-4f923000 001ba000 4096                /usr/lib/libc-2.18.so
+  LINUX                 48  386_TLS
+    index: 6, base: 0xb77da700, limit: 0x000fffff, flags: 0x00000051
+    index: 7, base: 0x00000000, limit: 0x00000000, flags: 0x00000028
+    index: 8, base: 0x00000000, limit: 0x00000000, flags: 0x00000028
+EOF
+
 exit 0
diff --git a/tests/testfile_i686_core.bz2 b/tests/testfile_i686_core.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..8412776ee99c8b305833af03efd983e903f4279f
GIT binary patch
literal 15980
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
a-4qtOmb@P&up9Zm{x0N-aG@Zvd^c#;U0GfL

literal 0
HcmV?d00001

-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]