summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2006-12-29 20:44:16 +0000
committerRoland McGrath <roland@redhat.com>2006-12-29 20:44:16 +0000
commit7000880e78fd68f00accb80e11437b824884aea4 (patch)
tree099b0e0387bee6a0bb9e66cb7791abf75d8cbe68
parenta33c3013e80383342825c1af7fad2a6f3979ceee (diff)
downloadelfutils-7000880e78fd68f00accb80e11437b824884aea4.tar.gz
remove extra log entry
-rw-r--r--libdwfl/ChangeLog7
-rw-r--r--libdwfl/dwfl_module.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 50e9e1bb..0ee9633e 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,8 +1,7 @@
-2006-12-29 Ulrich Drepper <drepper@redhat.com>
+2006-12-27 Roland McGrath <roland@redhat.com>
- * dwfl_module.c (compare_modules): Do not try to be smart and use
- subtraction which can lead to wrong results.
- Patch by Frank Eigler <fche@redhat.com>.
+ * dwfl_module.c (compare_modules): Fix address comparison to avoid
+ signed overflow. Patch by Frank Ch. Eigler <fche@redhat.com>.
2006-10-30 Roland McGrath <roland@redhat.com>
diff --git a/libdwfl/dwfl_module.c b/libdwfl/dwfl_module.c
index 0cccb5c0..16c616d2 100644
--- a/libdwfl/dwfl_module.c
+++ b/libdwfl/dwfl_module.c
@@ -172,7 +172,9 @@ compare_modules (const void *a, const void *b)
if (m2 == NULL)
return 1;
- if (m1->low_addr < m2->low_addr
+ /* No signed difference calculation is correct here, since the
+ terms are unsigned and could be more than INT64_MAX apart. */
+ if (m1->low_addr < m2->low_addr)
return -1;
if (m1->low_addr > m2->low_addr)
return 1;