]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gas: segfault in out_debug_str
authorAlan Modra <amodra@gmail.com>
Mon, 20 Apr 2026 06:09:39 +0000 (15:39 +0930)
committerAlan Modra <amodra@gmail.com>
Mon, 20 Apr 2026 06:09:39 +0000 (15:39 +0930)
Another fuzzer fix.  I don't care to emit diagnostics for silly input,
so haven't done so here.

* dwarf2dbg.c (out_debug_str): Don't segfault on NULL file name.

gas/dwarf2dbg.c

index c90572131183659b5104a3ab7f5bd277b6aa0afa..7b338bb11cd1dfe8ded69f856f0d5b155ad51d44 100644 (file)
@@ -3058,9 +3058,14 @@ out_debug_str (segT str_seg, symbolS **name_sym, symbolS **comp_dir_sym,
 #endif
       free (dirname);
     }
-  len = strlen (files[first_file].filename) + 1;
-  p = frag_more (len);
-  memcpy (p, files[first_file].filename, len);
+  if (files[first_file].filename)
+    {
+      len = strlen (files[first_file].filename) + 1;
+      p = frag_more (len);
+      memcpy (p, files[first_file].filename, len);
+    }
+  else
+    frag_append_1_char (0);
 
   /* DW_AT_comp_dir */
   *comp_dir_sym = symbol_temp_new_now_octets ();