PR26418 UBSAN: cache.c:386 null pointer fwrite

PR 26418
	* ecofflink.c (WRITE): Don't write size 0 chunks.
This commit is contained in:
Alan Modra
2020-08-26 14:18:53 +09:30
parent c01de19363
commit 9863cbb7bd
2 changed files with 11 additions and 4 deletions

View File

@@ -1,3 +1,8 @@
2020-08-26 Alan Modra <amodra@gmail.com>
PR 26418
* ecofflink.c (WRITE): Don't write size 0 chunks.
2020-08-26 Alan Modra <amodra@gmail.com>
* bfdio.c (bfd_get_file_size): Don't segv on NULL adata.

View File

@@ -1489,10 +1489,12 @@ bfd_ecoff_write_debug (bfd *abfd,
return FALSE;
#define WRITE(ptr, count, size, offset) \
BFD_ASSERT (symhdr->offset == 0 \
|| (bfd_vma) bfd_tell (abfd) == symhdr->offset); \
if (bfd_bwrite (debug->ptr, (bfd_size_type) size * symhdr->count, abfd)\
!= size * symhdr->count) \
BFD_ASSERT (symhdr->offset == 0 \
|| (bfd_vma) bfd_tell (abfd) == symhdr->offset); \
if (size != 0 \
&& bfd_bwrite (debug->ptr, \
(bfd_size_type) size * symhdr->count, \
abfd) != size * symhdr->count) \
return FALSE;
WRITE (line, cbLine, sizeof (unsigned char), cbLineOffset);