summaryrefslogtreecommitdiffstats
path: root/runtime/unwind
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-10-20 13:55:15 +0200
committerMark Wielaard <mjw@redhat.com>2009-10-20 13:55:15 +0200
commitbf043a5f9c9f807d670276b6c389bf5439245edb (patch)
tree907ecfaaa99d2a2c5bce7293ad7d992de44e806a /runtime/unwind
parentc42e2d2e1a9e8c09a435089ce351e1d36309dd9b (diff)
downloadsystemtap-steved-bf043a5f9c9f807d670276b6c389bf5439245edb.tar.gz
systemtap-steved-bf043a5f9c9f807d670276b6c389bf5439245edb.tar.xz
systemtap-steved-bf043a5f9c9f807d670276b6c389bf5439245edb.zip
Be paranoid about table size resolving cie_for_fde and fde_pointer_type.
* runtime/unwind.c (cie_for_fde): Take table and table_len into account. (fde_pointer_type): Likewise. * runtime/unwind/unwind.h: Adjust function prototypes.
Diffstat (limited to 'runtime/unwind')
-rw-r--r--runtime/unwind/unwind.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h
index 285a3a34..023ea603 100644
--- a/runtime/unwind/unwind.h
+++ b/runtime/unwind/unwind.h
@@ -143,8 +143,10 @@ static unsigned long read_pointer(const u8 **pLoc,
const void *end,
signed ptrType);
static const u32 bad_cie, not_fde;
-static const u32 *cie_for_fde(const u32 *fde, void *table, int is_ehframe);
-static signed fde_pointer_type(const u32 *cie);
+static const u32 *cie_for_fde(const u32 *fde, void *table,
+ uint32_t table_len, int is_ehframe);
+static signed fde_pointer_type(const u32 *cie,
+ void *table, uint32_t table_len);
#endif /* STP_USE_DWARF_UNWINDER */