aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2025-02-23 21:04:29 +1030
committerAlan Modra <amodra@gmail.com>2025-02-23 21:04:29 +1030
commita021382482a6c891d74d302a598688f447ae97e0 (patch)
tree6894652cf5da6612734e08eaf8fe7a184bf116ba
parentd1c7d788be4ca79e7764145bc8fe62b7f3dbfc1b (diff)
downloadbinutils-a021382482a6c891d74d302a598688f447ae97e0.zip
binutils-a021382482a6c891d74d302a598688f447ae97e0.tar.gz
binutils-a021382482a6c891d74d302a598688f447ae97e0.tar.bz2
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.
-rw-r--r--ld/ldlang.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index d2c9b96..011c526 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -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;