From 9cc5af6a1f80ea46b2444e266c69193c32c13d3b Mon Sep 17 00:00:00 2001 From: Pter Chubb Date: Tue, 18 Jul 2023 17:04:43 +0100 Subject: [PATCH] PR 30632 - ld segfaults if linker script includes a STARTUP line. --- ld/ldlang.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ld/ldlang.c b/ld/ldlang.c index 4b86c164843..f7760fed69b 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, -- 2.30.2