[PATCH] sframe: fix PR libsframe/33051
Indu Bhagat
indu.bhagat@oracle.com
Wed Jun 4 03:22:24 GMT 2025
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.
---
libsframe/sframe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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;
--
2.43.0
More information about the Binutils
mailing list