#include "path-util.h"
#include "audit-fd.h"
#include "efivars.h"
+#include "env-util.h"
/* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
#define GC_QUEUE_ENTRIES_MAX 16
* the initrd interface:
* http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface */
strv_remove_prefix(m->environment, "RD_");
+
+ /* Drop invalid entries */
+ strv_env_clean(m->environment);
}
int manager_new(SystemdRunningAs running_as, Manager **_m) {
static void manager_build_unit_path_cache(Manager *m) {
char **i;
- DIR *d = NULL;
+ DIR _cleanup_free_ *d = NULL;
int r;
assert(m);
set_free_free(m->unit_path_cache);
- if (!(m->unit_path_cache = set_new(string_hash_func, string_compare_func))) {
+ m->unit_path_cache = set_new(string_hash_func, string_compare_func);
+ if (!m->unit_path_cache) {
log_error("Failed to allocate unit path cache.");
return;
}
d = opendir(*i);
if (!d) {
- log_error("Failed to open directory: %m");
+ if (errno != ENOENT)
+ log_error("Failed to open directory %s: %m", *i);
continue;
}
goto fail;
}
- if ((r = set_put(m->unit_path_cache, p)) < 0) {
+ r = set_put(m->unit_path_cache, p);
+ if (r < 0) {
free(p);
goto fail;
}
set_free_free(m->unit_path_cache);
m->unit_path_cache = NULL;
-
- if (d)
- closedir(d);
}
int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
r = mkdir_p_label(p, 0755);
if (r < 0) {
- log_error("Failed to create generator directory: %s", strerror(-r));
+ log_error("Failed to create generator directory %s: %s",
+ p, strerror(-r));
free(p);
return r;
}
if (!mkdtemp(p)) {
free(p);
- log_error("Failed to create generator directory: %m");
+ log_error("Failed to create generator directory %s: %m",
+ p);
return -errno;
}
}
if (errno == ENOENT)
return;
- log_error("Failed to enumerate generator directory: %m");
+ log_error("Failed to enumerate generator directory %s: %m",
+ generator_path);
return;
}