version 1.30, 2021/10/22 11:10:34 |
version 1.31, 2021/10/24 21:24:17 |
|
|
const char *root = sess->opts->basedir[i]; |
const char *root = sess->opts->basedir[i]; |
int dfd, x; |
int dfd, x; |
|
|
dfd = openat(p->rootfd, root, O_RDONLY | O_DIRECTORY, 0); |
dfd = openat(p->rootfd, root, O_RDONLY | O_DIRECTORY); |
if (dfd == -1) |
if (dfd == -1) |
err(ERR_FILE_IO, "%s: openat", root); |
err(ERR_FILE_IO, "%s: openat", root); |
x = check_file(dfd, f, &st); |
x = check_file(dfd, f, &st); |
|
|
} |
} |
|
|
*size = st.st_size; |
*size = st.st_size; |
*filefd = openat(p->rootfd, f->path, O_RDONLY | O_NOFOLLOW, 0); |
*filefd = openat(p->rootfd, f->path, O_RDONLY | O_NOFOLLOW); |
if (*filefd == -1 && errno != ENOENT) { |
if (*filefd == -1 && errno != ENOENT) { |
ERR("%s: openat", f->path); |
ERR("%s: openat", f->path); |
return -1; |
return -1; |