X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=08c7fabb7aca8a6a56d89248624d976b9da62415;hb=f8e08a77e7bbea802b50adcb442f99af462fa96e;hp=a82cce4ae926d86f226943cd45bfe95976e7a303;hpb=78e39b43b89c6bf9ce401d6030939a004a23c850;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index a82cce4ae..08c7fabb7 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -3963,6 +3963,7 @@ static int create_symlink(const char *verb, const char *old_path, const char *ne return 1; } + free(dest); return 0; } @@ -4089,7 +4090,7 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo } if (!f) { -#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA)) || defined(TARGET_MEEGO) && defined (HAVE_SYSV_COMPAT) +#if (defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_SUSE) || defined(TARGET_MEEGO) || defined(TARGET_ALTLINUX)) && defined (HAVE_SYSV_COMPAT) if (endswith(i->name, ".service")) { char *sysv; @@ -4160,19 +4161,21 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo return -ENOENT; } + i->path = filename; + + if ((r = config_parse(filename, f, NULL, items, true, i)) < 0) { + fclose(f); + return r; + } + /* Consider unit files stored in /lib and /usr always enabled * if they have no [Install] data. */ if (streq(verb, "is-enabled") && strv_isempty(i->aliases) && strv_isempty(i->wanted_by) && - !path_startswith(filename, "/etc")) - return 1; - - i->path = filename; - - if ((r = config_parse(filename, f, NULL, items, true, i)) < 0) { + !path_startswith(filename, "/etc")) { fclose(f); - return r; + return 1; } n_symlinks += strv_length(i->aliases);