fatal if we're unable to write all the public key; previously we
authordjm <djm@openbsd.org>
Sat, 10 Feb 2018 05:43:26 +0000 (05:43 +0000)
committerdjm <djm@openbsd.org>
Sat, 10 Feb 2018 05:43:26 +0000 (05:43 +0000)
would silently ignore errors writing the comment and terminating
newline. Prompted by github PR from WillerZ; ok dtucker

usr.bin/ssh/ssh-keygen.c

index 73a0486..715025b 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keygen.c,v 1.310 2018/02/07 05:15:49 jsing Exp $ */
+/* $OpenBSD: ssh-keygen.c,v 1.311 2018/02/10 05:43:26 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -2823,7 +2823,8 @@ passphrase_again:
        if ((r = sshkey_write(public, f)) != 0)
                error("write key failed: %s", ssh_err(r));
        fprintf(f, " %s\n", comment);
-       fclose(f);
+       if (ferror(f) || fclose(f) != 0)
+               fatal("write public failed: %s", strerror(errno));
 
        if (!quiet) {
                fp = sshkey_fingerprint(public, fingerprint_hash,