mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 03:35:09 +00:00
Shell: use access() syscall to check if files are executable by user
This commit is contained in:
parent
9e365a6c1c
commit
13c122b8b2
1 changed files with 2 additions and 4 deletions
|
@ -1019,9 +1019,7 @@ void cache_path()
|
||||||
while (programs.has_next()) {
|
while (programs.has_next()) {
|
||||||
auto program = programs.next_path();
|
auto program = programs.next_path();
|
||||||
String program_path = String::format("%s/%s", directory.characters(), program.characters());
|
String program_path = String::format("%s/%s", directory.characters(), program.characters());
|
||||||
struct stat program_status;
|
if (access(program_path.characters(), X_OK) == 0)
|
||||||
int stat_error = stat(program_path.characters(), &program_status);
|
|
||||||
if (!stat_error && (program_status.st_mode & S_IXUSR))
|
|
||||||
cached_path.append(program.characters());
|
cached_path.append(program.characters());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1098,7 +1096,7 @@ int main(int argc, char** argv)
|
||||||
int stat_error = stat(file_path.characters(), &program_status);
|
int stat_error = stat(file_path.characters(), &program_status);
|
||||||
if (stat_error)
|
if (stat_error)
|
||||||
continue;
|
continue;
|
||||||
if (!(program_status.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
|
if (access(file_path.characters(), X_OK) != 0)
|
||||||
continue;
|
continue;
|
||||||
if (S_ISDIR(program_status.st_mode)) {
|
if (S_ISDIR(program_status.st_mode)) {
|
||||||
if (!suggest_executables)
|
if (!suggest_executables)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue