From 395ab474eba31f5bbe95e96cab06ab066384c4af Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sun, 2 Jul 2023 02:57:35 -0400 Subject: [PATCH] dwarf: fix logic error in eh_frame_hdry binary search --- lib/std/dwarf.zig | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/std/dwarf.zig b/lib/std/dwarf.zig index 06714aad2f..218180692c 100644 --- a/lib/std/dwarf.zig +++ b/lib/std/dwarf.zig @@ -1886,10 +1886,13 @@ pub const ExceptionFrameHeader = struct { .data_rel_base = eh_frame_hdr_ptr, }, builtin.cpu.arch.endian()) orelse return badDwarf(); - if (pc >= pc_begin) left = mid; - if (pc == pc_begin) break; - - len /= 2; + if (pc < pc_begin) { + len /= 2; + } else { + left = mid; + if (pc == pc_begin) break; + len -= len / 2; + } } try stream.seekTo(left * entry_size);