mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-16 04:18:50 +00:00
sframe: fix PR libsframe/33051
Fix PR libsframe/Bug 33051 - ASAN: heap-buffer-overflow ../../src/libsframe/sframe.c:1054 in sframe_get_funcdesc_with_addr_internal The previous commit9d2a24349e(libsframe: correct binary search for SFrame FDE) adapted the binary search logic in sframe_get_funcdesc_with_addr_internal. Adjusting the upper end of the search index was missed. The search must only be done for FDEs starting at index 0 and up until num_fdes - 1. Prior logic of searching (before commit9d2a24349e) was a bit different. libsframe/ * sframe.c: Use the correct high index.
This commit is contained in:
@@ -1044,7 +1044,7 @@ sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr,
|
|||||||
/* Do the binary search. */
|
/* Do the binary search. */
|
||||||
fdp = (sframe_func_desc_entry *) ctx->sfd_funcdesc;
|
fdp = (sframe_func_desc_entry *) ctx->sfd_funcdesc;
|
||||||
low = 0;
|
low = 0;
|
||||||
high = dhp->sfh_num_fdes;
|
high = dhp->sfh_num_fdes - 1;
|
||||||
while (low <= high)
|
while (low <= high)
|
||||||
{
|
{
|
||||||
int mid = low + (high - low) / 2;
|
int mid = low + (high - low) / 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user