SHA256
1
0
forked from pool/gpg2
gpg2/gnupg-1.9.18-tmpdir.diff

46 lines
1.7 KiB
Diff

Index: agent/gpg-agent.c
===================================================================
--- agent/gpg-agent.c.orig
+++ agent/gpg-agent.c
@@ -874,6 +874,10 @@ main (int argc, char **argv )
gnupg_fd_t fd_ssh;
pid_t pid;
+ char *tmp1, *tmp;
+ char *tmp2 = "gpg-XXXXXX/S.gpg-agent";
+ size_t len;
+
/* Remove the DISPLAY variable so that a pinentry does not
default to a specific display. There is still a default
display when gpg-agent was started using --display or a
@@ -885,16 +889,25 @@ main (int argc, char **argv )
unsetenv ("DISPLAY");
#endif
+ if ((tmp1 = getenv("TMPDIR")) == NULL)
+ tmp1 = "/tmp";
+
+ len = strlen(tmp1) + strlen(tmp2) + 10;
+ tmp = malloc(len);
+
+ snprintf(tmp, len, "%s%s%s", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", tmp2);
/* Create the sockets. */
socket_name = create_socket_name (use_standard_socket,
"S.gpg-agent",
- "/tmp/gpg-XXXXXX/S.gpg-agent");
- if (opt.ssh_support)
+ tmp);
+ if (opt.ssh_support) {
+ snprintf(tmp, len, "%s%s%s.ssh", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", tmp2);
socket_name_ssh = create_socket_name (use_standard_socket,
"S.gpg-agent.ssh",
- "/tmp/gpg-XXXXXX/S.gpg-agent.ssh");
-
+ tmp);
+ }
+ free(tmp);
fd = create_server_socket (use_standard_socket, socket_name, 0,
&socket_nonce);
if (opt.ssh_support)