--- gnupg-1.9.7-orig/agent/gpg-agent.c 2004-04-06 14:13:21 +0400 +++ gnupg-1.9.7-orig/agent/gpg-agent.c 2004-10-12 03:04:37 +0400 @@ -678,6 +678,15 @@ int len; struct sockaddr_un serv_addr; char *p; + char *tmpdir; + + /* Get TMPDIR variable. Don't use $TMPDIR if it unset or + set to empty string. */ + tmpdir = getenv("TMPDIR"); + if (tmpdir == NULL) + tmpdir = getenv("TMP"); + if (tmpdir != NULL && tmpdir[0] == 0) + tmpdir = NULL; /* Remove the DISPLAY variable so that a pinentry does not default to a specific display. There is still a default @@ -688,7 +697,7 @@ *socket_name = 0; snprintf (socket_name, DIM(socket_name)-1, - "/tmp/gpg-XXXXXX/S.gpg-agent"); + "%s/gpg-XXXXXX/S.gpg-agent", tmpdir != NULL ? tmpdir : "/tmp"); socket_name[DIM(socket_name)-1] = 0; p = strrchr (socket_name, '/'); if (!p) --- gnupg-1.9.7-orig/scd/scdaemon.c 2004-04-06 14:13:17 +0400 +++ gnupg-1.9.7-orig/scd/scdaemon.c 2004-10-12 03:04:39 +0400 @@ -584,12 +584,21 @@ int len; struct sockaddr_un serv_addr; char *p; + char *tmpdir; + + /* Get TMPDIR variable. Don't use $TMPDIR if it unset or + set to empty string. */ + tmpdir = getenv("TMPDIR"); + if (tmpdir == NULL) + tmpdir = getenv("TMP"); + if (tmpdir != NULL && tmpdir[0] == 0) + tmpdir = NULL; /* fixme: if there is already a running gpg-agent we should share the same directory - and vice versa */ *socket_name = 0; snprintf (socket_name, DIM(socket_name)-1, - "/tmp/gpg-XXXXXX/S.scdaemon"); + "%s/gpg-XXXXXX/S.scdaemon", tmpdir != NULL ? tmpdir : "/tmp"); socket_name[DIM(socket_name)-1] = 0; p = strrchr (socket_name, '/'); if (!p)