=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/ssh-keygen.c,v retrieving revision 1.256 retrieving revision 1.257 diff -u -r1.256 -r1.257 --- src/usr.bin/ssh/ssh-keygen.c 2015/01/18 21:49:42 1.256 +++ src/usr.bin/ssh/ssh-keygen.c 2015/01/18 21:51:19 1.257 @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.256 2015/01/18 21:49:42 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.257 2015/01/18 21:51:19 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -1013,9 +1013,11 @@ } struct known_hosts_ctx { - FILE *out; - const char *host; - int has_unhashed, found_key, inplace, invalid; + const char *host; /* Hostname searched for in find/delete case */ + FILE *out; /* Output file, stdout for find_hosts case */ + int has_unhashed; /* When hashing, original had unhashed hosts */ + int found_key; /* For find/delete, host was found */ + int invalid; /* File contained invalid items; don't delete */ }; static int @@ -1043,7 +1045,6 @@ fprintf(stderr, "%s:%ld: ignoring host name " "with wildcard: %.64s\n", l->path, l->linenum, l->hosts); - ctx->has_unhashed = 1; } return 0; } @@ -1114,7 +1115,7 @@ do_known_hosts(struct passwd *pw, const char *name) { char *cp, tmp[MAXPATHLEN], old[MAXPATHLEN]; - int r, fd, oerrno; + int r, fd, oerrno, inplace = 0; struct known_hosts_ctx ctx; if (!have_identity) { @@ -1148,7 +1149,7 @@ unlink(tmp); fatal("fdopen: %s", strerror(oerrno)); } - ctx.inplace = 1; + inplace = 1; } /* XXX support identity_file == "-" for stdin */ @@ -1157,13 +1158,13 @@ name, find_host ? HKF_WANT_MATCH_HOST : 0)) != 0) fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r)); - if (ctx.inplace) + if (inplace) fclose(ctx.out); if (ctx.invalid) { fprintf(stderr, "%s is not a valid known_hosts file.\n", identity_file); - if (ctx.inplace) { + if (inplace) { fprintf(stderr, "Not replacing existing known_hosts " "file because of errors\n"); unlink(tmp); @@ -1173,7 +1174,7 @@ fprintf(stderr, "Host %s not found in %s\n", name, identity_file); unlink(tmp); - } else if (ctx.inplace) { + } else if (inplace) { /* Backup existing file */ if (unlink(old) == -1 && errno != ENOENT) fatal("unlink %.100s: %s", old, strerror(errno));