]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libebl/eblinitreg_sample.c: fix a potential off-by-one error
authorSerhei Makarov <serhei@serhei.io>
Fri, 6 Mar 2026 17:21:47 +0000 (12:21 -0500)
committerSerhei Makarov <serhei@serhei.io>
Tue, 14 Apr 2026 20:51:12 +0000 (16:51 -0400)
I believe the way things were setup on x86 meant this never triggered
(since n_regs == n_regs_mapping, the for loop would stop at the
correct moment), but the logic here looks clearly incorrect for the
general case. Fix.

* libebl/eblinitreg_sample.c (ebl_set_initial_registers_sample):
  Be sure to break when i == n_regs_mapping, which is out of range.

Signed-off-by: Serhei Makarov <serhei@serhei.io>
libebl/eblinitreg_sample.c

index ca756c9097eefc3860656a1038923a22cfdcb06c..2b5a278a72eb157b8a3c0f4c01cfb2488d5fd653 100644 (file)
@@ -71,7 +71,7 @@ ebl_set_initial_registers_sample (Ebl *ebl,
     dwarf_regs[i] = 0x0;
   for (i = 0; i < n_regs; i++)
     {
-      if (i > n_regs_mapping)
+      if (i >= n_regs_mapping)
        break;
       if (regs_mapping[i] < 0 || regs_mapping[i] >= (int)ebl->frame_nregs)
        continue;