summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2009-01-22 04:52:56 -0800
committerRoland McGrath <[email protected]>2009-01-22 04:52:56 -0800
commit74afbeed7d5d83a4336d8455507bc39ce6dce13c (patch)
tree5bfd642c6e352e1b17ea7ea0a3caac93bf8eed87
parent97b12d0e19be004bd623b5ebc2b0504620ed06cc (diff)
Fix libdwfl segment bugs breaking core-file support.
-rw-r--r--libdwfl/ChangeLog7
-rw-r--r--libdwfl/dwfl_segment_report_module.c9
-rw-r--r--libdwfl/segment.c4
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. */