aboutsummaryrefslogtreecommitdiff
path: root/bfd/aoutx.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/aoutx.h')
-rw-r--r--bfd/aoutx.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 43e5f8d..c64f288 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -2395,10 +2395,15 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section)
count != 0;
--count, natptr += each_size, ++generic)
{
- if ((*generic)->howto == NULL)
+ /* PR 20921: If the howto field has not been initialised then skip
+ this reloc.
+ PR 20929: Similarly for the symbol field. */
+ if ((*generic)->howto == NULL
+ || (*generic)->sym_ptr_ptr == NULL)
{
bfd_set_error (bfd_error_invalid_operation);
- _bfd_error_handler (_("%B: attempt to write out unknown reloc type"), abfd);
+ _bfd_error_handler (_("\
+%B: attempt to write out unknown reloc type"), abfd);
return FALSE;
}
MY_swap_ext_reloc_out (abfd, *generic,
@@ -2411,12 +2416,12 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section)
count != 0;
--count, natptr += each_size, ++generic)
{
- /* PR 20921: If the howto field has not been initialised then skip
- this reloc. */
- if ((*generic)->howto == NULL)
+ if ((*generic)->howto == NULL
+ || (*generic)->sym_ptr_ptr == NULL)
{
bfd_set_error (bfd_error_invalid_operation);
- _bfd_error_handler (_("%B: attempt to write out unknown reloc type"), abfd);
+ _bfd_error_handler (_("\
+%B: attempt to write out unknown reloc type"), abfd);
return FALSE;
}
MY_swap_std_reloc_out (abfd, *generic,