diff options
author | Kurt Kanzenbach <kurt@linutronix.de> | 2019-04-04 15:48:11 +0200 |
---|---|---|
committer | John Kacur <jkacur@redhat.com> | 2019-04-05 18:24:51 +0200 |
commit | efbb46d13739eb8e4047e61ba0eb048017db09f3 (patch) | |
tree | d35585a9e59523487a2218ad7438a8cd48ed346f | |
parent | 76ba006ebcd60b30d014f4f507a9864541d2e3e6 (diff) | |
download | rt-tests-efbb46d13739eb8e4047e61ba0eb048017db09f3.tar.gz rt-tests-efbb46d13739eb8e4047e61ba0eb048017db09f3.tar.xz |
rt-tests: cyclicdeadline: fix segmentation fault on close
The current code generates a segmentation fault in the last free() call.
$ sudo ./cyclicdeadline
Using all CPUS
/sys/kernel/debug/sched_features: Success
interval: 600:1000
Tested at 5us of 600us
deadline thread 2963
thread[2963] runtime=600us deadline=1000us
main thread 2962
fail 2 0
T: 0 ( 2963) I:1000 C: 1268 Min: 7 Act: 55 Avg: 56 Max: 256
[1] 2961 segmentation fault sudo ./cyclicdeadline
This is caused by a buffer overflow in setup_ftrace_marker(). The appended
string is 21 not 14 characters wide. Fix it by using strlen() like the other
function do.
Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: John Kacur <jkacur@redhat.com>
-rw-r--r-- | src/sched_deadline/cyclicdeadline.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c index 0846010..303b5e9 100644 --- a/src/sched_deadline/cyclicdeadline.c +++ b/src/sched_deadline/cyclicdeadline.c @@ -283,7 +283,7 @@ static void setup_ftrace_marker(void) { struct stat st; const char *debugfs = find_debugfs(); - char files[strlen(debugfs) + 14]; + char files[strlen(debugfs) + strlen("/tracing/trace_marker") + 1]; int ret; if (strlen(debugfs) == 0) |