Fix potentially undefined behaviour in the linker when parsing input statements.
authorNick Clifton <nickc@redhat.com>
Thu, 21 Nov 2019 17:02:40 +0000 (17:02 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 21 Nov 2019 17:04:05 +0000 (17:04 +0000)
* ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Check for an empty
file chain before examining the first input statement.

ld/ChangeLog
ld/ldlang.h

index e4e3f7405849e75815c18949e19db95bf73839ab..5a3b2ddd1cac063d5f784cb385809cd2955dbeb6 100644 (file)
@@ -1,3 +1,8 @@
+2019-11-21  Nick Clifton  <nickc@redhat.com>
+
+       * ldlang.h (LANG_FOR_EACH_INPUT_STATEMENT): Check for an empty
+       file chain before examining the first input statement.
+
 2019-11-21  Alan Modra  <amodra@gmail.com>
 
        PR 46
index 8cc5cf7f900670de68e76a784bc8011a8027bce2..3e3e6a028940b4f8b6d937773bfa217b0e98787b 100644 (file)
@@ -574,7 +574,7 @@ extern asection *section_for_dot
 
 #define LANG_FOR_EACH_INPUT_STATEMENT(statement)                       \
   lang_input_statement_type *statement;                                        \
-  for (statement = &file_chain.head->input_statement;                  \
+  for (statement = file_chain.head == NULL ? NULL : &file_chain.head->input_statement; \
        statement != NULL;                                              \
        statement = statement->next)
 
This page took 0.026117 seconds and 4 git commands to generate.