diff options
author | 2004-10-07 10:12:36 +0000 | |
---|---|---|
committer | 2004-10-07 10:12:36 +0000 | |
commit | 40705b534f569f93b490b55df4b97597ff42b2fb (patch) | |
tree | 0691532a824e3bb4d9c4eb52c2ff656b58622e79 /usr.bin/ssh/ssh-agent.c | |
parent | document KbdInteractiveDevices; ok markus@ (diff) | |
download | wireguard-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.c | 4 |
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) { |