X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fpath-lookup.c;h=1a47ea9ce75d88e85ef602d450ad3cbee622f995;hp=8ee9ddc9c6e65662560481a28a927f6207e2eb98;hb=bc9fd78c7bfc39881e19457e476393635f8b0442;hpb=874310b7b68c4c0d36ff07397db30a959bb7dae5 diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c index 8ee9ddc9c..1a47ea9ce 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c @@ -41,21 +41,26 @@ DEFINE_STRING_TABLE_LOOKUP(systemd_running_as, SystemdRunningAs); int user_config_home(char **config_home) { const char *e; + char *r; e = getenv("XDG_CONFIG_HOME"); if (e) { - if (asprintf(config_home, "%s/systemd/user", e) < 0) + r = strappend(e, "/systemd/user"); + if (!r) return -ENOMEM; + *config_home = r; return 1; } else { const char *home; home = getenv("HOME"); if (home) { - if (asprintf(config_home, "%s/.config/systemd/user", home) < 0) + r = strappend(home, "/.config/systemd/user"); + if (!r) return -ENOMEM; + *config_home = r; return 1; } } @@ -239,7 +244,6 @@ int lookup_paths_init( const char *generator_late) { const char *e; - char *t; assert(p); @@ -318,12 +322,10 @@ int lookup_paths_init( strv_uniq(p->unit_path); if (!strv_isempty(p->unit_path)) { - - t = strv_join(p->unit_path, "\n\t"); + _cleanup_free_ char *t = strv_join(p->unit_path, "\n\t"); if (!t) return -ENOMEM; - log_debug("Looking for unit files in:\n\t%s", t); - free(t); + log_debug("Looking for unit files in (higher priority first):\n\t%s", t); } else { log_debug("Ignoring unit files."); strv_free(p->unit_path); @@ -380,12 +382,10 @@ int lookup_paths_init( strv_uniq(p->sysvrcnd_path); if (!strv_isempty(p->sysvinit_path)) { - - t = strv_join(p->sysvinit_path, "\n\t"); + _cleanup_free_ char *t = strv_join(p->sysvinit_path, "\n\t"); if (!t) return -ENOMEM; log_debug("Looking for SysV init scripts in:\n\t%s", t); - free(t); } else { log_debug("Ignoring SysV init scripts."); strv_free(p->sysvinit_path); @@ -393,20 +393,19 @@ int lookup_paths_init( } if (!strv_isempty(p->sysvrcnd_path)) { - - t = strv_join(p->sysvrcnd_path, "\n\t"); + _cleanup_free_ char *t = + strv_join(p->sysvrcnd_path, "\n\t"); if (!t) return -ENOMEM; log_debug("Looking for SysV rcN.d links in:\n\t%s", t); - free(t); } else { log_debug("Ignoring SysV rcN.d links."); strv_free(p->sysvrcnd_path); p->sysvrcnd_path = NULL; } #else - log_debug("Disabled SysV init scripts and rcN.d links support"); + log_debug("SysV init scripts and rcN.d links support disabled"); #endif }