summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMantas Mikulėnas <grawity@gmail.com>2017-02-20 23:38:40 +0200
committerDaiki Ueno <ueno@gnu.org>2017-02-21 09:56:10 +0100
commitc65752d596e69f48ebe67694cfb2a91697a676bf (patch)
tree5ae7f677d572b2bb064e8462ae2c01065b2d54e4
parent8eed1e60b0921d05872e2f43eee9088cef038d7e (diff)
rpc: Try $XDG_CACHE_HOME before ~/.cache
This is unset on most systems, but might as well follow the Base Directory spec properly.
-rw-r--r--p11-kit/client.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/p11-kit/client.c b/p11-kit/client.c
index 75aebe8..b4eb57f 100644
--- a/p11-kit/client.c
+++ b/p11-kit/client.c
@@ -96,6 +96,17 @@ get_runtime_directory (char **directoryp)
}
/* We can't use /run/user/<UID>, fallback to ~/.cache. */
+ envvar = secure_getenv ("XDG_CACHE_HOME");
+
+ if (envvar != NULL && envvar[0] != '\0') {
+ directory = strdup (envvar);
+ if (!directory)
+ return CKR_HOST_MEMORY;
+
+ *directoryp = directory;
+ return CKR_OK;
+ }
+
if (getpwuid_r (uid, &pwbuf, buf, sizeof buf, &pw) < 0 ||
pw == NULL || pw->pw_dir == NULL || *pw->pw_dir != '/')
return CKR_GENERAL_ERROR;