aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorPter Chubb <peter.chubb@unsw.edu.au>2023-07-18 17:04:43 +0100
committerNick Clifton <nickc@redhat.com>2023-07-18 17:04:43 +0100
commit9cc5af6a1f80ea46b2444e266c69193c32c13d3b (patch)
treedc8e39e4077741c5b2d4c5e7711c20177864fb30 /ld
parentb0a101c53a1caa3f2a9fc2032f703ca4465cfbbb (diff)
downloadgdb-9cc5af6a1f80ea46b2444e266c69193c32c13d3b.zip
gdb-9cc5af6a1f80ea46b2444e266c69193c32c13d3b.tar.gz
gdb-9cc5af6a1f80ea46b2444e266c69193c32c13d3b.tar.bz2
PR 30632 - ld segfaults if linker script includes a STARTUP line.
Diffstat (limited to 'ld')
-rw-r--r--ld/ldlang.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 4b86c16..f7760fe 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1136,9 +1136,15 @@ new_afile (const char *name,
lang_has_input_file = true;
- name = ldfile_possibly_remap_input (name);
- if (name == NULL)
- return NULL;
+ /* PR 30632: It is OK for name to be NULL. For example
+ see the initialization of first_file in lang_init(). */
+ if (name != NULL)
+ {
+ name = ldfile_possibly_remap_input (name);
+ /* But if a name is remapped to NULL, it should be ignored. */
+ if (name == NULL)
+ return NULL;
+ }
p = new_stat (lang_input_statement, stat_ptr);
memset (&p->the_bfd, 0,