chiark / gitweb /
sysusers: fix selinux context of backup files
[elogind.git] / src / shared / util.c
index 88511b69c0a805c0a4ad627028efc4627bf34bf7..4fda31c83832de5cd34efd99800e0da0f35dbeaf 100644 (file)
@@ -3604,6 +3604,17 @@ int null_or_empty_path(const char *fn) {
         return null_or_empty(&st);
 }
 
+int null_or_empty_fd(int fd) {
+        struct stat st;
+
+        assert(fd >= 0);
+
+        if (fstat(fd, &st) < 0)
+                return -errno;
+
+        return null_or_empty(&st);
+}
+
 DIR *xopendirat(int fd, const char *name, int flags) {
         int nfd;
         DIR *d;
@@ -3795,7 +3806,7 @@ bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) {
         return endswith(de->d_name, suffix);
 }
 
-void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv[], char *env[]) {
+void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv[]) {
         pid_t executor_pid;
         int r;
 
@@ -3826,14 +3837,6 @@ void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv
 
                 assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0);
 
-                if (!strv_isempty(env)) {
-                        char **i;
-
-                        STRV_FOREACH(i, env)
-                                putenv(*i);
-                }
-
-
                 if (!d) {
                         d = _d = opendir(directory);
                         if (!d) {
@@ -5427,7 +5430,7 @@ bool string_has_cc(const char *p, const char *ok) {
 
         for (t = p; *t; t++) {
                 if (ok && strchr(ok, *t))
-                        return false;
+                        continue;
 
                 if (*t > 0 && *t < ' ')
                         return true;