summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/ssh-agent.c
diff options
context:
space:
mode:
authordjm <djm@openbsd.org>2004-10-07 10:12:36 +0000
committerdjm <djm@openbsd.org>2004-10-07 10:12:36 +0000
commit40705b534f569f93b490b55df4b97597ff42b2fb (patch)
tree0691532a824e3bb4d9c4eb52c2ff656b58622e79 /usr.bin/ssh/ssh-agent.c
parentdocument KbdInteractiveDevices; ok markus@ (diff)
downloadwireguard-openbsd-40705b534f569f93b490b55df4b97597ff42b2fb.tar.xz
wireguard-openbsd-40705b534f569f93b490b55df4b97597ff42b2fb.zip
don't unlink agent socket when bind() fails, spotted by rich AT rich-paul.net
ok markus@
Diffstat (limited to 'usr.bin/ssh/ssh-agent.c')
-rw-r--r--usr.bin/ssh/ssh-agent.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.bin/ssh/ssh-agent.c b/usr.bin/ssh/ssh-agent.c
index 515dcc972ec..18dc1db12d5 100644
--- a/usr.bin/ssh/ssh-agent.c
+++ b/usr.bin/ssh/ssh-agent.c
@@ -35,7 +35,7 @@
#include "includes.h"
#include <sys/queue.h>
-RCSID("$OpenBSD: ssh-agent.c,v 1.120 2004/08/11 21:43:05 avsm Exp $");
+RCSID("$OpenBSD: ssh-agent.c,v 1.121 2004/10/07 10:12:36 djm Exp $");
#include <openssl/evp.h>
#include <openssl/md5.h>
@@ -1106,6 +1106,7 @@ main(int ac, char **av)
sock = socket(AF_UNIX, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket");
+ *socket_name = '\0'; /* Don't unlink any existing file */
cleanup_exit(1);
}
memset(&sunaddr, 0, sizeof(sunaddr));
@@ -1113,6 +1114,7 @@ main(int ac, char **av)
strlcpy(sunaddr.sun_path, socket_name, sizeof(sunaddr.sun_path));
if (bind(sock, (struct sockaddr *) & sunaddr, sizeof(sunaddr)) < 0) {
perror("bind");
+ *socket_name = '\0'; /* Don't unlink any existing file */
cleanup_exit(1);
}
if (listen(sock, SSH_LISTEN_BACKLOG) < 0) {