X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Funit-printf.c;h=7736899a35ae9f0b8e49c232233ea98534d6dd2d;hb=5bd4b173605142c7be493aa4d958ebaef21f421d;hp=4e18afab8bb62f989d3acd111657f6641a1bbec7;hpb=2cfbd749af308bdbe56edcfed7f3eea0fc2b93d2;p=elogind.git diff --git a/src/core/unit-printf.c b/src/core/unit-printf.c index 4e18afab8..7736899a3 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; @@ -182,7 +179,7 @@ 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); @@ -208,7 +205,7 @@ static int specifier_user_name(char specifier, void *data, void *userdata, char if (r < 0) return -ENODATA; - asprintf(&printed, "%lu", (unsigned long) 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, "%lu", (unsigned long) uid); + r = asprintf(&printed, UID_FMT, uid); } - if (!printed) + if (r < 0 || !printed) return -ENOMEM; *ret = printed; @@ -369,7 +366,7 @@ int unit_full_printf(Unit *u, const char *format, char **ret) { /* This is similar to unit_name_printf() but also supports * unescaping. Also, adds a couple of additional codes: * - * %f the the instance if set, otherwise the id + * %f the instance if set, otherwise the id * %c cgroup path of unit * %r where units in this slice are placed in the cgroup tree * %R the root of this systemd's instance tree