PR26418 UBSAN: cache.c:386 null pointer fwrite

And some more.

	PR 26418
	* ecofflink.c (bfd_ecoff_write_accumulated_debug): Don't write
	zero size buffers.
This commit is contained in:
Alan Modra 2020-08-28 23:06:47 +09:30
parent 4a5700b62f
commit 07319accdf
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2020-08-28 Alan Modra <amodra@gmail.com>
PR 26418
* ecofflink.c (bfd_ecoff_write_accumulated_debug): Don't write
zero size buffers.
2020-08-28 Alan Modra <amodra@gmail.com>
PR 26418

View File

@ -1652,7 +1652,7 @@ bfd_ecoff_write_accumulated_debug (void * handle,
/* The external strings and symbol are not converted over to using
shuffles. FIXME: They probably should be. */
amt = debug->symbolic_header.issExtMax;
if (bfd_bwrite (debug->ssext, amt, abfd) != amt)
if (amt != 0 && bfd_bwrite (debug->ssext, amt, abfd) != amt)
goto error_return;
if ((debug->symbolic_header.issExtMax & (swap->debug_align - 1)) != 0)
{
@ -1682,7 +1682,7 @@ bfd_ecoff_write_accumulated_debug (void * handle,
== (bfd_vma) bfd_tell (abfd)));
amt = debug->symbolic_header.iextMax * swap->external_ext_size;
if (bfd_bwrite (debug->external_ext, amt, abfd) != amt)
if (amt != 0 && bfd_bwrite (debug->external_ext, amt, abfd) != amt)
goto error_return;
free (space);