]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR 32731 ub sanitizer accessing filenames_reversed
authorAlan Modra <amodra@gmail.com>
Sun, 23 Feb 2025 10:34:29 +0000 (21:04 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 23 Feb 2025 11:42:54 +0000 (22:12 +1030)
tic4x-coff and mcore-pe tickle this bug by a peculiarity of their
default ld scripts.

PR 32731
* ldlang.c (lang_add_wild): Init filenames_reversed when no
filespec.

(cherry picked from commit a021382482a6c891d74d302a598688f447ae97e0)

ld/ldlang.c

index 74c0271973f643bb401a5e2941ae604df174e6ac..88d2c188fac078a9eec04f6e9d1facf52fd4aaef 100644 (file)
@@ -8647,6 +8647,7 @@ lang_add_wild (struct wildcard_spec *filespec,
   new_stmt = new_stat (lang_wild_statement, stat_ptr);
   new_stmt->filename = NULL;
   new_stmt->filenames_sorted = false;
+  new_stmt->filenames_reversed = false;
   new_stmt->any_specs_sorted = any_specs_sorted;
   new_stmt->section_flag_list = NULL;
   new_stmt->exclude_name_list = NULL;
@@ -8654,9 +8655,9 @@ lang_add_wild (struct wildcard_spec *filespec,
     {
       new_stmt->filename = filespec->name;
       new_stmt->filenames_sorted = (filespec->sorted == by_name || filespec->reversed);
+      new_stmt->filenames_reversed = filespec->reversed;
       new_stmt->section_flag_list = filespec->section_flag_list;
       new_stmt->exclude_name_list = filespec->exclude_name_list;
-      new_stmt->filenames_reversed = filespec->reversed;
     }
   new_stmt->section_list = section_list;
   new_stmt->keep_sections = keep_sections;