X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Funit-printf.c;h=90cb5040c19f7a88d3ef1e5881b8f7da68f7c0f4;hb=340a1d2330ddc1dd18ad75bcdddf32f63c84b4a1;hp=5bd30f0bf74a7a4e37b07a0797d1d0514f40ac0e;hpb=de0671ee7fe465e108f62dcbbbe9366f81dd9e9a;p=elogind.git diff --git a/src/core/unit-printf.c b/src/core/unit-printf.c index 5bd30f0bf..90cb5040c 100644 --- a/src/core/unit-printf.c +++ b/src/core/unit-printf.c @@ -19,16 +19,13 @@ along with systemd; If not, see . ***/ -#include "systemd/sd-id128.h" #include "unit.h" #include "specifier.h" -#include "path-util.h" #include "strv.h" #include "unit-name.h" #include "unit-printf.h" #include "macro.h" #include "cgroup-util.h" -#include "special.h" static int specifier_prefix_and_instance(char specifier, void *data, void *userdata, char **ret) { Unit *u = userdata; @@ -84,7 +81,7 @@ static int specifier_instance_unescaped(char specifier, void *data, void *userda assert(u); if (!u->instance) - return -ENOTSUP; + return -EOPNOTSUPP; n = unit_name_unescape(u->instance); if (!n) @@ -167,7 +164,7 @@ static int specifier_runtime(char specifier, void *data, void *userdata, char ** else { e = getenv("XDG_RUNTIME_DIR"); if (!e) - return -ENOTSUP; + return -EOPNOTSUPP; } n = strdup(e); @@ -182,13 +179,13 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char char *printed = NULL; Unit *u = userdata; ExecContext *c; - int r; + int r = 0; assert(u); c = unit_get_exec_context(u); if (!c) - return -ENOTSUP; + return -EOPNOTSUPP; if (u->manager->running_as == SYSTEMD_SYSTEM) { @@ -208,7 +205,7 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char if (r < 0) return -ENODATA; - asprintf(&printed, UID_FMT, uid); + r = asprintf(&printed, UID_FMT, uid); } } @@ -231,10 +228,10 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char if (specifier == 'u') printed = strdup(username); else - asprintf(&printed, UID_FMT, uid); + r = asprintf(&printed, UID_FMT, uid); } - if (!printed) + if (r < 0 || !printed) return -ENOMEM; *ret = printed; @@ -251,7 +248,7 @@ static int specifier_user_home(char specifier, void *data, void *userdata, char c = unit_get_exec_context(u); if (!c) - return -ENOTSUP; + return -EOPNOTSUPP; if (u->manager->running_as == SYSTEMD_SYSTEM) { @@ -261,7 +258,7 @@ static int specifier_user_home(char specifier, void *data, void *userdata, char if (!c->user || streq(c->user, "root") || streq(c->user, "0")) n = strdup("/root"); else - return -ENOTSUP; + return -EOPNOTSUPP; } else { @@ -299,7 +296,7 @@ static int specifier_user_shell(char specifier, void *data, void *userdata, char c = unit_get_exec_context(u); if (!c) - return -ENOTSUP; + return -EOPNOTSUPP; if (u->manager->running_as == SYSTEMD_SYSTEM) { @@ -309,7 +306,7 @@ static int specifier_user_shell(char specifier, void *data, void *userdata, char if (!c->user || streq(c->user, "root") || streq(c->user, "0")) n = strdup("/bin/sh"); else - return -ENOTSUP; + return -EOPNOTSUPP; } else {