]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_...
authorIvo Raisr <ivosh@ivosh.net>
Tue, 31 Jan 2017 12:33:54 +0000 (12:33 +0000)
committerIvo Raisr <ivosh@ivosh.net>
Tue, 31 Jan 2017 12:33:54 +0000 (12:33 +0000)
Fixes BZ#375772

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16216

NEWS
coregrind/m_debuginfo/readelf.c

diff --git a/NEWS b/NEWS
index 96f8c3334c13f21947d267174692fa6a9dd763c9..4d42eac0a7b5e09445b88fe8c12fabdc10358683 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -111,6 +111,8 @@ where XXXXXX is the bug number as listed below.
 373555  Rename BBPTR to GSPTR as it denotes guest state pointer only
 373938  const IRExpr arguments for matchIRExpr()
 375514  valgrind_get_tls_addr() does not work in case of static TLS
+375772  +1 error in get_elf_symbol_info() when computing value of 'hi' address
+        for ML_(find_rx_mapping)()
 
 Release 3.12.0 (20 October 2016)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index 81f94ee1b5d6e0d490b48a70d71fa926fd6f46f8..edee12ee06086da29cb20aea6fc621ec45628893 100644 (file)
@@ -692,15 +692,15 @@ Bool get_elf_symbol_info (
       in_rx = (ML_(find_rx_mapping)(
                       di,
                       (*sym_avmas_out).main,
-                      (*sym_avmas_out).main + *sym_size_out) != NULL);
+                      (*sym_avmas_out).main + *sym_size_out - 1) != NULL);
       if (in_text)
          vg_assert(in_rx);
       if (!in_rx) {
          TRACE_SYMTAB(
             "ignore -- %#lx .. %#lx outside .text svma range %#lx .. %#lx\n",
-            (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out,
+            (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out - 1,
             di->text_avma,
-            di->text_avma + di->text_size);
+            di->text_avma + di->text_size - 1);
          return False;
       }
    } else {
@@ -708,7 +708,7 @@ Bool get_elf_symbol_info (
          TRACE_SYMTAB(
             "ignore -- %#lx .. %#lx outside .data / .sdata / .rodata "
             "/ .bss / .sbss svma ranges\n",
-            (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out);
+            (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out - 1);
          return False;
       }
    }