This is the mail archive of the
elfutils-devel@sourceware.org
mailing list for the elfutils project.
Make dwfl_addrsegment and friends set error
- From: Mark Wielaard <mjw at redhat dot com>
- To: elfutils-devel at lists dot fedorahosted dot org
- Date: Thu, 16 Jul 2009 18:08:32 +0200
- Subject: Make dwfl_addrsegment and friends set error
Hi,
dwfl_addrsegment (), dwfl_addrmodule () and anything that uses them
don't set an error when the given address is out of range. Which means
that if they fail and you use dwfl_errmsg () to generate an error
message it will seem to indicate nothing was wrong. This affects such
things like dwfl_addrdie () and even dwfl_validate_address () (which
only sets an error if the addr + offset is invalid, but not if addr
itself is).
2009-07-16 Mark Wielaard <mjw@redhat.com>
* segment.c (dwfl_addrsegment): Set DWFL_E_ADDR_OUTOFRANGE on error.
Makes sense?
Thanks,
Mark
>From 60a79c87babdd1fbdcaea64754a6374352789461 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mjw@redhat.com>
Date: Thu, 16 Jul 2009 17:57:22 +0200
Subject: [PATCH] dwfl_addrsegment set DWFL_E_ADDR_OUTOFRANGE on error.
---
libdwfl/ChangeLog | 4 ++++
libdwfl/segment.c | 2 ++
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 624f59b..56c3ab4 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,7 @@
+2009-07-16 Mark Wielaard <mjw@redhat.com>
+
+ * segment.c (dwfl_addrsegment): Set DWFL_E_ADDR_OUTOFRANGE on error.
+
2009-07-08 Roland McGrath <roland@redhat.com>
* dwfl_module_dwarf_cfi.c: New file.
diff --git a/libdwfl/segment.c b/libdwfl/segment.c
index 36c850f..d69e60a 100644
--- a/libdwfl/segment.c
+++ b/libdwfl/segment.c
@@ -264,6 +264,8 @@ dwfl_addrsegment (Dwfl *dwfl, Dwarf_Addr address, Dwfl_Module **mod)
if (likely (idx >= 0))
/* Translate internal segment table index to user segment index. */
idx = dwfl->lookup_segndx[idx];
+ else
+ __libdwfl_seterrno (DWFL_E_ADDR_OUTOFRANGE);
return idx;
}
--
1.6.3.3