]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authorderaadt@openbsd.org <deraadt@openbsd.org>
Sat, 28 Nov 2015 06:50:52 +0000 (06:50 +0000)
committerDamien Miller <djm@mindrot.org>
Sun, 29 Nov 2015 22:45:53 +0000 (09:45 +1100)
do not leak temp file if there is no known_hosts file
 from craig leres, ok djm

Upstream-ID: c820497fd5574844c782e79405c55860f170e426

ssh-keygen.c

index a788b710a438449cbd2c1772cf48b82ced924c02..f6a1c2847dd1f145c16e6fd881c296871a1e5ae5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keygen.c,v 1.283 2015/11/20 23:04:01 halex Exp $ */
+/* $OpenBSD: ssh-keygen.c,v 1.284 2015/11/28 06:50:52 deraadt Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1231,8 +1231,11 @@ do_known_hosts(struct passwd *pw, const char *name)
        foreach_options |= print_fingerprint ? HKF_WANT_PARSE_KEY : 0;
        if ((r = hostkeys_foreach(identity_file,
            hash_hosts ? known_hosts_hash : known_hosts_find_delete, &ctx,
-           name, NULL, foreach_options)) != 0)
+           name, NULL, foreach_options)) != 0) {
+               if (inplace)
+                       unlink(tmp);
                fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r));
+       }
 
        if (inplace)
                fclose(ctx.out);