@@ -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");