]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordjm@openbsd.org <djm@openbsd.org>
Fri, 4 Dec 2015 00:24:55 +0000 (00:24 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 4 Dec 2015 04:15:00 +0000 (15:15 +1100)
clean up agent_fd handling; properly initialise it to -1
 and make tests consistent

ok markus@

Upstream-ID: ac9554323d5065745caf17b5e37cb0f0d4825707

sshconnect2.c

index 69d0bee4e09a4f2443c27c9509efb00b6e11c278..d29f630f2d2f81f8c2e1e24c85cc35cfbea5a5d7 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect2.c,v 1.229 2015/11/15 22:26:49 jcs Exp $ */
+/* $OpenBSD: sshconnect2.c,v 1.230 2015/12/04 00:24:55 djm Exp $ */
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  * Copyright (c) 2008 Damien Miller.  All rights reserved.
@@ -978,7 +978,7 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp,
        int ret;
 
        /* the agent supports this key */
-       if (id->agent_fd)
+       if (id->agent_fd != -1)
                return ssh_agent_sign(id->agent_fd, id->key, sigp, lenp,
                    data, datalen, compat);
 
@@ -1197,7 +1197,7 @@ load_identity_file(Identity *id)
                        quit = 1;
                        break;
                }
-               if (!quit && private != NULL && !id->agent_fd &&
+               if (!quit && private != NULL && id->agent_fd == -1 &&
                    !(id->key && id->isprivate))
                        maybe_add_key_to_agent(id->filename, private, comment,
                            passphrase);
@@ -1227,7 +1227,7 @@ pubkey_prepare(Authctxt *authctxt)
        struct identity *id, *id2, *tmp;
        struct idlist agent, files, *preferred;
        struct sshkey *key;
-       int agent_fd, i, r, found;
+       int agent_fd = -1, i, r, found;
        size_t j;
        struct ssh_identitylist *idlist;
 
@@ -1245,6 +1245,7 @@ pubkey_prepare(Authctxt *authctxt)
                        continue;
                options.identity_keys[i] = NULL;
                id = xcalloc(1, sizeof(*id));
+               id->agent_fd = -1;
                id->key = key;
                id->filename = xstrdup(options.identity_files[i]);
                id->userprovided = options.identity_file_userprovided[i];
@@ -1280,6 +1281,7 @@ pubkey_prepare(Authctxt *authctxt)
                    key->cert->type != SSH2_CERT_TYPE_USER)
                        continue;
                id = xcalloc(1, sizeof(*id));
+               id->agent_fd = -1;
                id->key = key;
                id->filename = xstrdup(options.certificate_files[i]);
                id->userprovided = options.certificate_file_userprovided[i];
@@ -1348,8 +1350,9 @@ pubkey_prepare(Authctxt *authctxt)
                        memset(id, 0, sizeof(*id));
                        continue;
                }
-               debug2("key: %s (%p),%s", id->filename, id->key,
-                   id->userprovided ? " explicit" : "");
+               debug2("key: %s (%p)%s%s", id->filename, id->key,
+                   id->userprovided ? ", explicit" : "",
+                   id->agent_fd != -1 ? ", agent" : "");
        }
 }