From: Indu Bhagat Date: Wed, 4 Jun 2025 06:10:46 +0000 (-0700) Subject: sframe: fix PR libsframe/33051 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d984b08bb707a732358341b44b444c1c9860b287;p=thirdparty%2Fbinutils-gdb.git 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 commit 9d2a24349e2 (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 commit 9d2a24349e2) was a bit different. libsframe/ * sframe.c: Use the correct high index. --- diff --git a/libsframe/sframe.c b/libsframe/sframe.c index 950a6846f04..d38a61dbd63 100644 --- a/libsframe/sframe.c +++ b/libsframe/sframe.c @@ -1044,7 +1044,7 @@ sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr, /* Do the binary search. */ fdp = (sframe_func_desc_entry *) ctx->sfd_funcdesc; low = 0; - high = dhp->sfh_num_fdes; + high = dhp->sfh_num_fdes - 1; while (low <= high) { int mid = low + (high - low) / 2;