]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/journal/journal-verify.c
util-lib: rework /tmp and /var/tmp handling code
authorLennart Poettering <lennart@poettering.net>
Tue, 26 Jul 2016 15:23:28 +0000 (17:23 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 4 Aug 2016 14:27:07 +0000 (16:27 +0200)
commit992e8f224b91cacc3d6589bea7882c7ab9c0911b
tree7b1869a11a353488ba9c9857f57086e4dc7e046b
parenteb18df724ba541ac1c7fd5c77d9244fa6bc5cabf
util-lib: rework /tmp and /var/tmp handling code

Beef up the existing var_tmp() call, rename it to var_tmp_dir() and add a
matching tmp_dir() call (the former looks for the place for /var/tmp, the
latter for /tmp).

Both calls check $TMPDIR, $TEMP, $TMP, following the algorithm Python3 uses.
All dirs are validated before use. secure_getenv() is used in order to limite
exposure in suid binaries.

This also ports a couple of users over to these new APIs.

The var_tmp() return parameter is changed from an allocated buffer the caller
will own to a const string either pointing into environ[], or into a static
const buffer. Given that environ[] is mostly considered constant (and this is
exposed in the very well-known getenv() call), this should be OK behaviour and
allows us to avoid memory allocations in most cases.

Note that $TMPDIR and friends override both /var/tmp and /tmp usage if set.
src/basic/fileio.c
src/basic/fs-util.c
src/basic/fs-util.h
src/coredump/coredumpctl.c
src/journal/journal-verify.c
src/machine/machined-dbus.c
src/test/test-fs-util.c