diff options
author | Mark Wielaard <mjw@redhat.com> | 2009-10-20 13:55:15 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2009-10-20 13:55:15 +0200 |
commit | bf043a5f9c9f807d670276b6c389bf5439245edb (patch) | |
tree | 907ecfaaa99d2a2c5bce7293ad7d992de44e806a /runtime/unwind | |
parent | c42e2d2e1a9e8c09a435089ce351e1d36309dd9b (diff) | |
download | systemtap-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.h | 6 |
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 */ |