From: Ivo Raisr Date: Tue, 31 Jan 2017 12:33:54 +0000 (+0000) Subject: Fix +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_... X-Git-Tag: svn/VALGRIND_3_13_0~205 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8854a1c50f6c5e2dbb5500be567c1cce69002d5;p=thirdparty%2Fvalgrind.git Fix +1 error in get_elf_symbol_info() when computing value of 'hi' address for ML_(find_rx_mapping)() Fixes BZ#375772 git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16216 --- diff --git a/NEWS b/NEWS index 96f8c3334c..4d42eac0a7 100644 --- 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) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c index 81f94ee1b5..edee12ee06 100644 --- a/coregrind/m_debuginfo/readelf.c +++ b/coregrind/m_debuginfo/readelf.c @@ -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; } }