unescaped = cunescape(i->argument);
if (unescaped == NULL) {
- close_nointr_nofail(fd);
+ safe_close(fd);
return log_oom();
}
if (n < 0 || (size_t) n < l) {
log_error("Failed to write file %s: %s", path, n < 0 ? strerror(-n) : "Short write");
- close_nointr_nofail(fd);
+ safe_close(fd);
return n < 0 ? n : -EIO;
}
}
- close_nointr_nofail(fd);
+ safe_close(fd);
if (stat(path, &st) < 0) {
log_error("stat(%s) failed: %m", path);
for (;;) {
struct dirent *de;
- bool is_dir;
+ bool dir;
int r;
_cleanup_free_ char *entry_path = NULL;
}
if (de->d_type == DT_UNKNOWN) {
- struct stat st;
-
- if (lstat(entry_path, &st) < 0) {
+ r = is_dir(entry_path);
+ if (r < 0) {
if (ret == 0 && errno != ENOENT)
ret = -errno;
continue;
}
- is_dir = S_ISDIR(st.st_mode);
+ dir = r;
} else
- is_dir = de->d_type == DT_DIR;
+ dir = de->d_type == DT_DIR;
r = item_set_perms(i, entry_path);
if (r < 0) {
continue;
}
- if (is_dir) {
+ if (dir) {
r = recursive_relabel_children(i, entry_path);
if (r < 0 && ret == 0)
ret = r;