summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-05-22 18:00:16 +0930
committerAlan Modra <amodra@gmail.com>2019-05-22 18:33:39 +0930
commit9ec2f606ce9ebfe9b7d1c6d3db0614d19bd03a6b (patch)
tree45ca1c65fcf79d80246bd818a089873cd4c26b22
parent4decd602d8570eda5d36fd6cca2e50091000fa7a (diff)
downloadbinutils-gdb-9ec2f606ce9ebfe9b7d1c6d3db0614d19bd03a6b.tar.gz
vms-alpha gas segfault
* vms-alpha.c (_bfd_vms_write_etir): Don't attempt further processing on "size error in section".
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/vms-alpha.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index af7ae755ea1..4f523fa3ae1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2019-05-22 Alan Modra <amodra@gmail.com>
+ * vms-alpha.c (_bfd_vms_write_etir): Don't attempt further
+ processing on "size error in section".
+
+2019-05-22 Alan Modra <amodra@gmail.com>
+
* som.c (som_bfd_free_cached_info): Call
_bfd_generic_close_and_cleanup.
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index d8b30823a2b..4e6f9c1c429 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -4094,7 +4094,10 @@ _bfd_vms_write_etir (bfd * abfd, int objtype ATTRIBUTE_UNUSED)
{
/* Output rest of section. */
if (curr_addr > section->size)
- _bfd_error_handler (_("size error in section %pA"), section);
+ {
+ _bfd_error_handler (_("size error in section %pA"), section);
+ return FALSE;
+ }
size = section->size - curr_addr;
sto_imm (abfd, section, size, curr_data, curr_addr);
curr_data += size;