[GIT PULL] tracing/scripts: Fix some initialization problems

From: Steven Rostedt
Date: Tue Jan 18 2022 - 18:17:18 EST


Yinan Liu <yinan@xxxxxxxxxxxxxxxxx>

Linus,

tracing/scripts: Possible uninitialized variable

The 0day bot discovered a possible uninitialized path in the
scripts that sort the mcount sections at build time. Just needed
to initialize that variable.


Please pull the latest trace-v5.17-2 tree, which can be found at:


git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-v5.17-2

Tag SHA1: f6512a8d14cbc7d3a9cb63c872fbbabe26399a5a
Head SHA1: 35140d399db2b67153fc53b51a97ddb8ba3b5956


Yinan Liu (1):
script/sorttable: Fix some initialization problems

----
scripts/sorttable.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
---------------------------
commit 35140d399db2b67153fc53b51a97ddb8ba3b5956
Author: Yinan Liu <yinan@xxxxxxxxxxxxxxxxx>
Date: Tue Jan 18 14:52:41 2022 +0800

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@xxxxxxxxxxxxxxxxx
Link: https://lkml.kernel.org/r/20220118065241.42364-1-yinan@xxxxxxxxxxxxxxxxx

Fixes: 72b3942a173c ("scripts: ftrace - move the sort-processing in ftrace_init")
Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Signed-off-by: Yinan Liu <yinan@xxxxxxxxxxxxxxxxx>
Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>

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;