From: Roland McGrath Date: Mon, 27 Feb 2006 04:53:00 +0000 (+0000) Subject: 2006-02-26 Roland McGrath X-Git-Tag: elfutils-0.120~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=687d7e9bd154a4b1f22b5e3ed7c6c904e421e871;p=thirdparty%2Felfutils.git 2006-02-26 Roland McGrath * offline.c (dwfl_report_offline): Account for dwfl_report_elf having aligned up from DWFL->offline_next_address when checking for overlap. --- diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 8615f0cda..82c04586f 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2006-02-26 Roland McGrath + + * offline.c (dwfl_report_offline): Account for dwfl_report_elf having + aligned up from DWFL->offline_next_address when checking for overlap. + 2005-12-22 Roland McGrath * argp-std.c (parse_opt): Call dwfl_end in failure cases. diff --git a/libdwfl/offline.c b/libdwfl/offline.c index 05496399b..3cf110f19 100644 --- a/libdwfl/offline.c +++ b/libdwfl/offline.c @@ -1,5 +1,5 @@ /* Recover relocatibility for addresses computed from debug information. - Copyright (C) 2005 Red Hat, Inc. + Copyright (C) 2005, 2006 Red Hat, Inc. This program is Open Source software; you can redistribute it and/or modify it under the terms of the Open Software License version 1.0 as @@ -60,8 +60,11 @@ dwfl_report_offline (Dwfl *dwfl, const char *name, /* If this is an ET_EXEC file with fixed addresses, the address range it consumed may or may not intersect with the arbitrary range we will use for relocatable modules. Make sure we always use a free - range for the offline allocations. */ - if (dwfl->offline_next_address >= mod->low_addr + range for the offline allocations. If this module did use + offline_next_address, it may have rounded it up for the module's + alignment requirements. */ + if ((dwfl->offline_next_address >= mod->low_addr + || mod->low_addr - dwfl->offline_next_address < OFFLINE_REDZONE) && dwfl->offline_next_address < mod->high_addr + OFFLINE_REDZONE) dwfl->offline_next_address = mod->high_addr + OFFLINE_REDZONE;