diff options
author | Yinan Liu <yinan@linux.alibaba.com> | 2022-01-18 14:52:41 +0800 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2022-01-18 10:17:18 -0500 |
commit | 35140d399db2b67153fc53b51a97ddb8ba3b5956 (patch) | |
tree | a404a8ce8c3219084ba315eb8bdb16254878f776 /scripts/sorttable.h | |
parent | f37c3bbc635994eda203a6da4ba0f9d05165a8d6 (diff) | |
download | lwn-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.h | 5 |
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; |