diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2016-08-05 20:55:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-05 20:55:08 -0400 |
commit | 3bb81a80bd18c15a1befb4de9a4cf9a5b77ae354 (patch) | |
tree | 5111e551e67104dd8321f8fb78602d35c24f8b30 /src/basic/fileio.c | |
parent | b760a9af902c73ae76a05e17374e12e8e6c4e629 (diff) | |
parent | b08af3b12706f352f651e70e117f6d6dcf11a911 (diff) |
Merge pull request #3818 from poettering/exit-status-env
beef up /var/tmp and /tmp handling; set $SERVICE_RESULT/$EXIT_CODE/$EXIT_STATUS on ExecStop= and make sure root/nobody are always resolvable
Diffstat (limited to 'src/basic/fileio.c')
-rw-r--r-- | src/basic/fileio.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 588eacd77c..d642f3daea 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -1168,8 +1168,8 @@ int tempfn_random_child(const char *p, const char *extra, char **ret) { char *t, *x; uint64_t u; unsigned i; + int r; - assert(p); assert(ret); /* Turns this: @@ -1178,6 +1178,12 @@ int tempfn_random_child(const char *p, const char *extra, char **ret) { * /foo/bar/waldo/.#<extra>3c2b6219aa75d7d0 */ + if (!p) { + r = tmp_dir(&p); + if (r < 0) + return r; + } + if (!extra) extra = ""; @@ -1264,10 +1270,13 @@ int fputs_with_space(FILE *f, const char *s, const char *separator, bool *space) int open_tmpfile_unlinkable(const char *directory, int flags) { char *p; - int fd; + int fd, r; - if (!directory) - directory = "/tmp"; + if (!directory) { + r = tmp_dir(&directory); + if (r < 0) + return r; + } /* Returns an unlinked temporary file that cannot be linked into the file system anymore */ |