PR28048, heap-buffer-overflow on readelf -Ww

Alan Modra amodra@gmail.com
Fri Jul 2 13:50:58 GMT 2021


	PR 28048
	* dwarf.c (get_type_signedness): Don't run off end of buffer
	printing DW_FORM_string attribute.

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index de9d2b8c8f5..1e7f4db7b7c 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -2211,7 +2211,7 @@ get_type_signedness (abbrev_entry *entry,
 	      if (attr->form == DW_FORM_strp)
 		printf (", %s", fetch_indirect_string (uvalue));
 	      else if (attr->form == DW_FORM_string)
-		printf (", %s", orig_data);
+		printf (", %.*s", (int) (end - orig_data), orig_data);
 	    }
 	  break;
 

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list