diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-06-28 02:53:15 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-06-28 02:53:15 +0200 |
commit | 15e11d81e7c26439f583e1cf67ac3c712430a79e (patch) | |
tree | 3c4986e97840e88e539c72c38fc64398f4bf94d1 /src/load-fragment.c | |
parent | 21308c654dda82726f634fc695529d3af33e6fb6 (diff) |
unit: when loading symlinked template units, properly add all names on the way to the unit
Diffstat (limited to 'src/load-fragment.c')
-rw-r--r-- | src/load-fragment.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/load-fragment.c b/src/load-fragment.c index 56eaed9ab4..352db6b385 100644 --- a/src/load-fragment.c +++ b/src/load-fragment.c @@ -1661,13 +1661,16 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) { * unit name. */ name = file_name_from_path(*filename); - if (unit_name_is_valid(name, false)) { - if (!(id = set_get(names, name))) { + if (unit_name_is_valid(name, true)) { - if (!(id = strdup(name))) + id = set_get(names, name); + if (!id) { + id = strdup(name); + if (!id) return -ENOMEM; - if ((r = set_put(names, id)) < 0) { + r = set_put(names, id); + if (r < 0) { free(id); return r; } |