ubsan: size_inc_line_addr integer overflow

Alan Modra amodra@gmail.com
Sun May 11 13:27:26 GMT 2025


Fix a fuzzer testcase where a large positive line_delta causes signed
overflow when subtracting -5.  Signed overflow is perfectly OK here.

diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 2963e52958a..955119bd87a 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -1632,7 +1632,7 @@ size_inc_line_addr (int line_delta, addressT addr_delta)
     }
 
   /* Bias the line delta by the base.  */
-  tmp = line_delta - DWARF2_LINE_BASE;
+  tmp = (unsigned) line_delta - DWARF2_LINE_BASE;
 
   /* If the line increment is out of range of a special opcode, we
      must encode it with DW_LNS_advance_line.  */

-- 
Alan Modra


More information about the Binutils mailing list