diff options
Diffstat (limited to 'tools/perf/util/path.c')
| -rw-r--r-- | tools/perf/util/path.c | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/perf/util/path.c b/tools/perf/util/path.c index caed0336429f..ce80b79be103 100644 --- a/tools/perf/util/path.c +++ b/tools/perf/util/path.c @@ -86,9 +86,21 @@ bool is_directory(const char *base_path, const struct dirent *dent)  	char path[PATH_MAX];  	struct stat st; -	sprintf(path, "%s/%s", base_path, dent->d_name); +	snprintf(path, sizeof(path), "%s/%s", base_path, dent->d_name);  	if (stat(path, &st))  		return false;  	return S_ISDIR(st.st_mode);  } + +bool is_executable_file(const char *base_path, const struct dirent *dent) +{ +	char path[PATH_MAX]; +	struct stat st; + +	snprintf(path, sizeof(path), "%s/%s", base_path, dent->d_name); +	if (stat(path, &st)) +		return false; + +	return !S_ISDIR(st.st_mode) && (st.st_mode & S_IXUSR); +}  | 
