fix ssh_config FingerprintHash evaluation order; from Petr Lautrbach
authordjm <djm@openbsd.org>
Thu, 8 Jan 2015 13:44:36 +0000 (13:44 +0000)
committerdjm <djm@openbsd.org>
Thu, 8 Jan 2015 13:44:36 +0000 (13:44 +0000)
usr.bin/ssh/readconf.c

index 24ff6ad..51034c1 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.224 2014/12/21 22:27:56 djm Exp $ */
+/* $OpenBSD: readconf.c,v 1.225 2015/01/08 13:44:36 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1452,6 +1452,7 @@ parse_int:
                goto parse_string;
 
        case oFingerprintHash:
+               intptr = &options->fingerprint_hash;
                arg = strdelim(&s);
                if (!arg || *arg == '\0')
                        fatal("%.200s line %d: Missing argument.",
@@ -1459,8 +1460,8 @@ parse_int:
                if ((value = ssh_digest_alg_by_name(arg)) == -1)
                        fatal("%.200s line %d: Invalid hash algorithm \"%s\".",
                            filename, linenum, arg);
-               if (*activep)
-                       options->fingerprint_hash = value;
+               if (*activep && *intptr == -1)
+                       *intptr = value;
                break;
 
        case oDeprecated: