diff options
author | Kay Sievers <kay@vrfy.org> | 2013-07-26 05:22:22 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2013-07-26 18:40:40 +0200 |
commit | e21fea24ae2a7a04f6d5c9d2bbbaf5833d248952 (patch) | |
tree | e73759c9e6d0f38074436f0a22745c9131dd5ef8 /src/shared/strv.c | |
parent | 68fee104e630eb19f04b8196a83c14c2c9c469e7 (diff) |
rework systemd's own process environment handling/passing
Stop importing non-sensical kernel-exported variables. All
parameters in the kernel command line are exported to the
initial environment of PID1, but suppressed if they are
recognized by kernel built-in code. The EFI booted kernel
will add further kernel-internal things which do not belong
into userspace.
The passed original environ data of the process is not touched
and preserved across re-execution, to allow external reading of
/proc/self/environ for process properties like container*=.
Diffstat (limited to 'src/shared/strv.c')
-rw-r--r-- | src/shared/strv.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/shared/strv.c b/src/shared/strv.c index a5ce7e9593..3e7778d61c 100644 --- a/src/shared/strv.c +++ b/src/shared/strv.c @@ -387,6 +387,21 @@ fail: return NULL; } +char **strv_appendf(char **l, const char *format, ...) { + va_list ap; + _cleanup_free_ char *s = NULL; + int r; + + va_start(ap, format); + r = vasprintf(&s, format, ap); + va_end(ap); + + if (r < 0) + return NULL; + + return strv_append(l, s); +} + int strv_push(char ***l, char *value) { char **c; unsigned n; |