diff options
author | Sami Kerola | 2015-10-31 20:21:15 +0100 |
---|---|---|
committer | Karel Zak | 2015-11-09 09:56:14 +0100 |
commit | d0a050e0f9343f3da7c3b865eff78ce36df14f2c (patch) | |
tree | 8fff6110f3babb152261fd7c398e527c17dcba7d | |
parent | swapon: fix stat(3) and open(3) race (diff) | |
download | kernel-qcow2-util-linux-d0a050e0f9343f3da7c3b865eff78ce36df14f2c.tar.gz kernel-qcow2-util-linux-d0a050e0f9343f3da7c3b865eff78ce36df14f2c.tar.xz kernel-qcow2-util-linux-d0a050e0f9343f3da7c3b865eff78ce36df14f2c.zip |
fsck: retire stat(3) when access(3) does better job
The stat(3) and access(3) are in this case almost interchangeable, so choose
the lightweight function with additional advantage checking the file is
executable.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
-rw-r--r-- | disk-utils/fsck.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/disk-utils/fsck.c b/disk-utils/fsck.c index ff504aa1d..5be2b44d7 100644 --- a/disk-utils/fsck.c +++ b/disk-utils/fsck.c @@ -547,14 +547,13 @@ static char *find_fsck(const char *type) const char *tpl; static char prog[256]; char *p = xstrdup(fsck_path); - struct stat st; /* Are we looking for a program or just a type? */ tpl = (strncmp(type, "fsck.", 5) ? "%s/fsck.%s" : "%s/%s"); for(s = strtok(p, ":"); s; s = strtok(NULL, ":")) { sprintf(prog, tpl, s, type); - if (stat(prog, &st) == 0) + if (access(prog, X_OK) == 0) break; } free(p); |