---
trace/ftrace.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/trace/ftrace.c b/trace/ftrace.c
index 61692a8682..9749543d9b 100644
--- a/trace/ftrace.c
+++ b/trace/ftrace.c
@@ -53,7 +53,11 @@ bool ftrace_init(void)
}
if (tracefs_found) {
- snprintf(path, PATH_MAX, "%s%s/tracing_on", mount_point, subdir);
+ if (snprintf(path, PATH_MAX, "%s%s/tracing_on", mount_point, subdir)
+ >= sizeof(path)) {
+ fprintf(stderr, "Using tracefs mountpoint would exceed
PATH_MAX\n");
+ return false;
+ }
trace_fd = open(path, O_WRONLY);
if (trace_fd < 0) {
if (errno == EACCES) {
@@ -72,7 +76,11 @@ bool ftrace_init(void)
}
close(trace_fd);
}
- snprintf(path, PATH_MAX, "%s%s/trace_marker", mount_point, subdir);
+ if (snprintf(path, PATH_MAX, "%s%s/trace_marker", mount_point, subdir)
+ >= sizeof(path)) {
+ fprintf(stderr, "Using tracefs mountpoint would exceed
PATH_MAX\n");
+ return false;
+ }
trace_marker_fd = open(path, O_WRONLY);
if (trace_marker_fd < 0) {
perror("Could not open ftrace 'trace_marker' file");