On Fri, Oct 13, 2017 at 07:30:01AM +0000, dcb314 wrote: > Source code is > > while (r_offset > (dso->lines.table[lndx].old_idx > + 4 > + dso->lines.table[lndx].unit_length) > && lndx < dso->lines.used) > lndx++; > > Suggest limit check array index before use, not after.
Yes, nice catch. The conditions should be swapped. Patch attached. Cheers, Mark
>From 3be44f93ab963169b1b1f4f24c7adffb2029f0df Mon Sep 17 00:00:00 2001 From: Mark Wielaard <m...@klomp.org> Date: Fri, 13 Oct 2017 23:27:32 +0200 Subject: [PATCH] debugedit: edit_dwarf2 check lndx is in range before checking r_offset. --- tools/debugedit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/debugedit.c b/tools/debugedit.c index a271b916e..fa47aa5e2 100644 --- a/tools/debugedit.c +++ b/tools/debugedit.c @@ -2141,10 +2141,10 @@ edit_dwarf2 (DSO *dso) r_offset = rel.r_offset; } - while (r_offset > (dso->lines.table[lndx].old_idx - + 4 - + dso->lines.table[lndx].unit_length) - && lndx < dso->lines.used) + while (lndx < dso->lines.used + && r_offset > (dso->lines.table[lndx].old_idx + + 4 + + dso->lines.table[lndx].unit_length)) lndx++; if (lndx >= dso->lines.used) -- 2.13.6
_______________________________________________ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint