]> 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 10:34:29 +0000 (21:04 +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.

ld/ldlang.c

index d2c9b96bfa0fbacd297d4eb7d61ae2374269c9f4..011c5262f870565283b059cd7a7d7dd31f8039b2 100644 (file)
@@ -8689,6 +8689,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;
@@ -8696,9 +8697,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;