This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]