=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/ssh-add.c,v retrieving revision 1.72.2.2 retrieving revision 1.73 diff -u -r1.72.2.2 -r1.73 --- src/usr.bin/ssh/ssh-add.c 2006/10/06 03:19:33 1.72.2.2 +++ src/usr.bin/ssh/ssh-add.c 2005/09/13 23:40:07 1.73 @@ -1,4 +1,3 @@ -/* $OpenBSD: ssh-add.c,v 1.72.2.2 2006/10/06 03:19:33 brad Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,25 +34,16 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include -#include +#include "includes.h" +RCSID("$OpenBSD: ssh-add.c,v 1.73 2005/09/13 23:40:07 djm Exp $"); #include -#include -#include -#include -#include -#include -#include - -#include "xmalloc.h" #include "ssh.h" #include "rsa.h" #include "log.h" +#include "xmalloc.h" #include "key.h" -#include "buffer.h" #include "authfd.h" #include "authfile.h" #include "pathnames.h" @@ -134,25 +124,16 @@ static int add_file(AuthenticationConnection *ac, const char *filename) { + struct stat st; Key *private; char *comment = NULL; char msg[1024]; - int fd, perms_ok, ret = -1; + int ret = -1; - if ((fd = open(filename, O_RDONLY)) < 0) { + if (stat(filename, &st) < 0) { perror(filename); return -1; } - - /* - * Since we'll try to load a keyfile multiple times, permission errors - * will occur multiple times, so check perms first and bail if wrong. - */ - perms_ok = key_perm_ok(fd, filename); - close(fd); - if (!perms_ok) - return -1; - /* At first, try empty passphrase */ private = key_load_private(filename, "", &comment); if (comment == NULL) @@ -306,7 +287,7 @@ static void usage(void) { - fprintf(stderr, "Usage: %s [options] [file ...]\n", __progname); + fprintf(stderr, "Usage: %s [options]\n", __progname); fprintf(stderr, "Options:\n"); fprintf(stderr, " -l List fingerprints of all identities.\n"); fprintf(stderr, " -L List public key parameters of all identities.\n"); @@ -339,8 +320,7 @@ /* At first, get a connection to the authentication agent. */ ac = ssh_get_authentication_connection(); if (ac == NULL) { - fprintf(stderr, - "Could not open a connection to your authentication agent.\n"); + fprintf(stderr, "Could not open a connection to your authentication agent.\n"); exit(2); } while ((ch = getopt(argc, argv, "lLcdDxXe:s:t:")) != -1) { @@ -350,11 +330,13 @@ if (list_identities(ac, ch == 'l' ? 1 : 0) == -1) ret = 1; goto done; + break; case 'x': case 'X': if (lock_agent(ac, ch == 'x' ? 1 : 0) == -1) ret = 1; goto done; + break; case 'c': confirm = 1; break; @@ -365,6 +347,7 @@ if (delete_all(ac) == -1) ret = 1; goto done; + break; case 's': sc_reader_id = optarg; break;