]> granicus.if.org Git - p11-kit/commitdiff
rpc: Try $XDG_CACHE_HOME before ~/.cache
authorMantas Mikulėnas <grawity@gmail.com>
Mon, 20 Feb 2017 21:38:40 +0000 (23:38 +0200)
committerDaiki Ueno <ueno@gnu.org>
Tue, 21 Feb 2017 08:56:10 +0000 (09:56 +0100)
This is unset on most systems, but might as well follow the Base
Directory spec properly.

p11-kit/client.c

index 75aebe8e38dd297a82dad1738faad5101e29058b..b4eb57f00fb9dd212931ace718fc31f5e127e296 100644 (file)
@@ -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;