diff options
| author | Roland McGrath <[email protected]> | 2009-01-22 04:52:56 -0800 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2009-01-22 04:52:56 -0800 |
| commit | 74afbeed7d5d83a4336d8455507bc39ce6dce13c (patch) | |
| tree | 5bfd642c6e352e1b17ea7ea0a3caac93bf8eed87 | |
| parent | 97b12d0e19be004bd623b5ebc2b0504620ed06cc (diff) | |
Fix libdwfl segment bugs breaking core-file support.
| -rw-r--r-- | libdwfl/ChangeLog | 7 | ||||
| -rw-r--r-- | libdwfl/dwfl_segment_report_module.c | 9 | ||||
| -rw-r--r-- | libdwfl/segment.c | 4 |
3 files changed, 10 insertions, 10 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index ef00a0cf..87e2b48d 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,10 @@ +2009-01-22 Roland McGrath <[email protected]> + + * dwfl_segment_report_module.c (addr_segndx): Remove bogus adjustments + after address-matching loop. + + * segment.c (lookup): Fix fencepost in checking for HINT match. + 2009-01-14 Roland McGrath <[email protected]> * gzip.c [!BZLIB] (mapped_zImage): New function. diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 50ed140e..a6639be5 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -1,5 +1,5 @@ /* Sniff out modules from ELF headers visible in memory segments. - Copyright (C) 2008 Red Hat, Inc. + Copyright (C) 2008, 2009 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -87,13 +87,6 @@ addr_segndx (Dwfl *dwfl, size_t segment, GElf_Addr addr) while (segment < dwfl->lookup_elts - 1 && dwfl->lookup_addr[segment] < addr); - while (dwfl->lookup_segndx[segment] < 0 - && segment < dwfl->lookup_elts - 1) - ++segment; - - if (dwfl->lookup_segndx[segment] >= 0) - ndx = dwfl->lookup_segndx[segment]; - return ndx; } diff --git a/libdwfl/segment.c b/libdwfl/segment.c index cb520e64..36c850f0 100644 --- a/libdwfl/segment.c +++ b/libdwfl/segment.c @@ -1,5 +1,5 @@ /* Manage address space lookup table for libdwfl. - Copyright (C) 2008 Red Hat, Inc. + Copyright (C) 2008, 2009 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -142,7 +142,7 @@ lookup (Dwfl *dwfl, GElf_Addr address, int hint) if (hint >= 0 && address >= dwfl->lookup_addr[hint] && ((size_t) hint + 1 == dwfl->lookup_elts - || address <= dwfl->lookup_addr[hint + 1])) + || address < dwfl->lookup_addr[hint + 1])) return hint; /* Do binary search on the array indexed by module load address. */ |
