From dda2980f54a0c9437de047f3020f520dd1e0de6a Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 20 Feb 2020 21:53:44 +1030 Subject: PR25569, PDP11 ld -s clobbers last data byte This patch fixes an ancient wart in aout support, in that text and data section sizes are rounded up for alignment rather that just the corresponding header sizes. Changing section sizes could conceivably result in buffer overflows if section contents were held in memory. Also, keeping the original section sizes allows this PR to be fixed nicely. bfd/ PR 25569 * aoutx.h (adjust_o_magic, adjust_z_magic, adjust_n_magic): Use "text", "data" and "bss" section pointer vars. Don't update section size, just exec header sizes. (adjust_sizes_and_vmas): Don't update text section size. Set initial exec header a_text. Print exec headers sizes. * pdp11.c (adjust_o_magic, adjust_z_magic, adjust_n_magic), (adjust_sizes_and_vmas): Similarly. Formatting. (final_link): Correct final file extension. gas/ PR 25569 * config/obj-aout.c (obj_aout_frob_file_before_fix): Don't loop on section size adjustment, instead perform another write if exec header size is larger than section size. --- gas/ChangeLog | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gas/ChangeLog') diff --git a/gas/ChangeLog b/gas/ChangeLog index fe177cf..4bc78e9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2020-02-21 Alan Modra + + PR 25569 + * config/obj-aout.c (obj_aout_frob_file_before_fix): Don't loop + on section size adjustment, instead perform another write if + exec header size is larger than section size. + 2020-02-19 Nelson Chu * doc/c-riscv.texi: Add the doc entries for -march-attr/ -- cgit v1.1