diff --git a/binutils/ChangeLog b/binutils/ChangeLog index feeb4055b4..02e36839f5 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2015-12-08 Nick Clifton + + PR binutils/19310 + * dwarf.c (display_debug_frames): Recode range test to avoid + undefined behaviour. + 2015-12-03 Tristan Gingold * od-macho.c (bfd_mach_o_header_flags_name): Add name diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 03e01175cc..0f6818fe8b 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -6459,7 +6459,7 @@ display_debug_frames (struct dwarf_section *section, case DW_CFA_def_cfa_expression: ul = LEB (); - if (start >= block_end || start + ul > block_end || start + ul < start) + if (start >= block_end || ul > (unsigned long) (block_end - start)) { printf (_(" DW_CFA_def_cfa_expression: \n"), ul); break;