summaryrefslogtreecommitdiff
path: root/scripts/sorttable.h
diff options
context:
space:
mode:
authorYinan Liu <yinan@linux.alibaba.com>2022-01-18 14:52:41 +0800
committerSteven Rostedt <rostedt@goodmis.org>2022-01-18 10:17:18 -0500
commit35140d399db2b67153fc53b51a97ddb8ba3b5956 (patch)
treea404a8ce8c3219084ba315eb8bdb16254878f776 /scripts/sorttable.h
parentf37c3bbc635994eda203a6da4ba0f9d05165a8d6 (diff)
downloadlwn-35140d399db2b67153fc53b51a97ddb8ba3b5956.tar.gz
lwn-35140d399db2b67153fc53b51a97ddb8ba3b5956.zip
script/sorttable: Fix some initialization problems
elf_mcount_loc and mcount_sort_thread definitions are not initialized immediately within the function, which can cause the judgment logic to use uninitialized values when the initialization logic of subsequent code fails. Link: https://lkml.kernel.org/r/20211212113358.34208-2-yinan@linux.alibaba.com Link: https://lkml.kernel.org/r/20220118065241.42364-1-yinan@linux.alibaba.com Fixes: 72b3942a173c ("scripts: ftrace - move the sort-processing in ftrace_init") Tested-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Yinan Liu <yinan@linux.alibaba.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'scripts/sorttable.h')
-rw-r--r--scripts/sorttable.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/scripts/sorttable.h b/scripts/sorttable.h
index 1e8b77928fa4..deb7c1d3e979 100644
--- a/scripts/sorttable.h
+++ b/scripts/sorttable.h
@@ -199,6 +199,8 @@ static int compare_extable(const void *a, const void *b)
return 0;
}
#ifdef MCOUNT_SORT_ENABLED
+pthread_t mcount_sort_thread;
+
struct elf_mcount_loc {
Elf_Ehdr *ehdr;
Elf_Shdr *init_data_sec;
@@ -282,10 +284,9 @@ static int do_sort(Elf_Ehdr *ehdr,
unsigned int shnum;
unsigned int shstrndx;
#ifdef MCOUNT_SORT_ENABLED
- struct elf_mcount_loc mstruct;
+ struct elf_mcount_loc mstruct = {0};
uint_t _start_mcount_loc = 0;
uint_t _stop_mcount_loc = 0;
- pthread_t mcount_sort_thread;
#endif
#if defined(SORTTABLE_64) && defined(UNWINDER_ORC_ENABLED)
unsigned int orc_ip_size = 0;