summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Kerola2015-10-31 20:21:15 +0100
committerKarel Zak2015-11-09 09:56:14 +0100
commitd0a050e0f9343f3da7c3b865eff78ce36df14f2c (patch)
tree8fff6110f3babb152261fd7c398e527c17dcba7d
parentswapon: fix stat(3) and open(3) race (diff)
downloadkernel-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.c3
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);