From: Mark Wielaard Date: Fri, 17 Dec 2021 17:09:31 +0000 (+0100) Subject: libdwfl: Make sure the note len increases each iteration X-Git-Tag: elfutils-0.187~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=163d1e9582efa8248057b088ad9c28fc8d24512e;p=thirdparty%2Felfutils.git libdwfl: Make sure the note len increases each iteration In dwfl_segment_report_module we have an overflow check when reading notes, but we could still not make any progress if the number of bytes read (len) didn't increase at all. Check len > last_len. Signed-off-by: Mark Wielaard --- diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 6a3e041bd..d00ce7020 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2021-12-08 Mark Wielaard + + * dwfl_segment_report_module.c (dwfl_segment_report_module): Make + sure the note len increases each iteration. + 2021-12-17 Mark Wielaard * libdwflP.h (dwfl_segment_report_module): Add maxread argument. diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 3e87d2070..89e05103f 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -562,7 +562,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, note_desc = notes + len; if (unlikely (filesz < len + nh->n_descsz - || len < last_len + || len <= last_len || len + nh->n_descsz < last_len)) break;