avoid printf("%s", NULL) if using ssh -oUserKnownHostsFile=none
authordjm <djm@openbsd.org>
Fri, 13 Jan 2023 02:44:02 +0000 (02:44 +0000)
committerdjm <djm@openbsd.org>
Fri, 13 Jan 2023 02:44:02 +0000 (02:44 +0000)
and a hostkey in one of the system known hosts file changes;
ok dtucker@

usr.bin/ssh/sshconnect.c

index f5bdd35..3464e28 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect.c,v 1.360 2022/11/03 21:59:20 djm Exp $ */
+/* $OpenBSD: sshconnect.c,v 1.361 2023/01/13 02:44:02 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1238,8 +1238,11 @@ check_host_key(char *hostname, const struct ssh_conn_info *cinfo,
                }
                /* The host key has changed. */
                warn_changed_key(host_key);
-               error("Add correct host key in %.100s to get rid of this message.",
-                   user_hostfiles[0]);
+               if (num_user_hostfiles > 0 || num_system_hostfiles > 0) {
+                       error("Add correct host key in %.100s to get rid "
+                           "of this message.", num_user_hostfiles > 0 ?
+                           user_hostfiles[0] : system_hostfiles[0]);
+               }
                error("Offending %s key in %s:%lu",
                    sshkey_type(host_found->key),
                    host_found->file, host_found->line);