• Frank Asseg's avatar
    tools/thermal: tmon: fix for segfault · 98b21980
    Frank Asseg authored
    [ Upstream commit 6c59f64b7ecf2bccbe73931d7d573d66ed13b537 ]
    
    Fixes a segfault occurring when e.g. <TAB> is pressed multiple times in the
    ncurses tmon application. The segfault is caused by incrementing
    cur_thermal_record in the main function without checking if it's value reached
    NR_THERMAL_RECORD immediately. Since the boundary check only occurred in
    update_thermal_data a race condition existed, which lead to an attempted read
    beyond the last element of the trec array.
    
    The fix was implemented by moving the cur_thermal_record incrementation to the
    update_thermal_data function using a temporary variable on which the boundary
    condition is checked before updating cur_thread_record, so that the variable is
    never incremented beyond the trec array's boundary.
    
    It seems the segfault does not occur on every machine: On a HP EliteBook G4 the
    segfault happens, while it does not happen on a Thinkpad T540p.
    Signed-off-by: 's avatarFrank Asseg <frank.asseg@objecthunter.net>
    Signed-off-by: 's avatarJiri Kosina <jkosina@suse.cz>
    Signed-off-by: 's avatarSasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    98b21980
Name
Last commit
Last update
..
.gitignore Loading commit data...
Makefile Loading commit data...
README Loading commit data...
pid.c Loading commit data...
sysfs.c Loading commit data...
tmon.8 Loading commit data...
tmon.c Loading commit data...
tmon.h Loading commit data...
tui.c Loading commit data...