[binutils-gdb/binutils-2_43-branch] PR 32731 ub sanitizer accessing filenames_reversed

Alan Modra amodra@sourceware.org
Sun Feb 23 11:49:23 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0058986f0efa97a2b9f83b33d8d70f08a7dac0ae

commit 0058986f0efa97a2b9f83b33d8d70f08a7dac0ae
Author: Alan Modra <amodra@gmail.com>
Date:   Sun Feb 23 21:04:29 2025 +1030

    PR 32731 ub sanitizer accessing filenames_reversed
    
    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)

Diff:
---
 ld/ldlang.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ld/ldlang.c b/ld/ldlang.c
index 318e5221ec0..7e7aff44fa7 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -8580,6 +8580,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;
@@ -8587,9 +8588,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;


More information about the Binutils-cvs mailing list