From: Oleksii Shevchuk Date: Sat, 3 Nov 2012 19:51:59 +0000 (+0200) Subject: core: fix %h, %s, %p handling in templates in user session X-Git-Tag: v196~75 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=inline;h=774de5a97fe69da822fde77b88af8d970ab5d0c6;p=elogind.git core: fix %h, %s, %p handling in templates in user session --- diff --git a/src/core/unit-printf.c b/src/core/unit-printf.c index cbae45d9f..a8eb60a3d 100644 --- a/src/core/unit-printf.c +++ b/src/core/unit-printf.c @@ -127,11 +127,9 @@ static char *specifier_user_name(char specifier, void *data, void *userdata) { assert(u); c = unit_get_exec_context(u); - if (!c) - return NULL; /* get USER env from our own env if set */ - if (!c->user) + if (!c || !c->user) return getusername_malloc(); /* fish username from passwd */ @@ -152,11 +150,9 @@ static char *specifier_user_home(char specifier, void *data, void *userdata) { assert(u); c = unit_get_exec_context(u); - if (!c) - return NULL; /* return HOME if set, otherwise from passwd */ - if (!c->user) { + if (!c || !c->user) { char *h; r = get_home_dir(&h); @@ -183,11 +179,9 @@ static char *specifier_user_shell(char specifier, void *data, void *userdata) { assert(u); c = unit_get_exec_context(u); - if (!c) - return NULL; /* return HOME if set, otherwise from passwd */ - if (!c->user) { + if (!c || !c->user) { char *sh; r = get_shell(&sh);