openssh/openssh-5.5p1-tmpdir.diff
OBS User autobuild df40408f27 Accepting request 43758 from Base:System
Copy from Base:System/openssh based on submit request 43758 from user anicka

OBS-URL: https://build.opensuse.org/request/show/43758
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openssh?expand=0&rev=47
2010-07-23 15:15:47 +00:00

25 lines
779 B
Diff

Index: ssh-agent.c
===================================================================
--- ssh-agent.c.orig
+++ ssh-agent.c
@@ -1174,8 +1174,18 @@ main(int ac, char **av)
parent_pid = getpid();
if (agentsocket == NULL) {
+ char *tmp1, *tmp;
+ char *tmp2 = "ssh-XXXXXXXXXX";
+ size_t len;
+
+ if ((tmp1 = getenv("TMPDIR")) == NULL)
+ tmp1 = "/tmp";
+ len = strlen(tmp1) + strlen(tmp2) + 1;
+ tmp = malloc(len);
+ snprintf(tmp, len, "%s%s%s", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", tmp2);
/* Create private directory for agent socket */
- strlcpy(socket_dir, "/tmp/ssh-XXXXXXXXXX", sizeof socket_dir);
+ strlcpy(socket_dir, tmp, sizeof socket_dir);
+ free(tmp);
if (mkdtemp(socket_dir) == NULL) {
perror("mkdtemp: private socket dir");
exit(1);