• Frank Asseg's avatar
    tools/thermal: tmon: fix for segfault · 6c59f64b
    Frank Asseg authored
    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: default avatarFrank Asseg <frank.asseg@objecthunter.net>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    6c59f64b
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...