]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2003/05/23 08:29:30
authordjm <djm>
Fri, 23 May 2003 08:44:41 +0000 (08:44 +0000)
committerdjm <djm>
Fri, 23 May 2003 08:44:41 +0000 (08:44 +0000)
     [sshconnect.c]
     fix leak; ok markus@

ChangeLog
sshconnect.c

index 397605c7766d7d7d8302a4cfc25f955b966f7d22..b7deee7f7a9acd2c97eb02ee1428d7070fbf3837 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,9 @@
    - jmc@cvs.openbsd.org 2003/05/20 12:09:31
      [ssh.1 ssh_config.5 sshd.8 sshd_config.5 ssh-keygen.1]
      new sentence, new line
+   - djm@cvs.openbsd.org 2003/05/23 08:29:30
+     [sshconnect.c]
+     fix leak; ok markus@
 
 20030520
  - (djm) OpenBSD CVS Sync
index 8aac221d33cb9dbca646acf716b398e70ddbc912..dfa2e5b099a61f5ca70918f2c6fe0997620cc725 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshconnect.c,v 1.141 2003/05/15 14:55:25 djm Exp $");
+RCSID("$OpenBSD: sshconnect.c,v 1.142 2003/05/23 08:29:30 djm Exp $");
 
 #include <openssl/bn.h>
 
@@ -225,7 +225,7 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr,
        fd_set *fdset;
        struct timeval tv;
        socklen_t optlen;
-       int fdsetsz, optval, rc;
+       int fdsetsz, optval, rc, result = -1;
 
        if (timeout <= 0)
                return (connect(sockfd, serv_addr, addrlen));
@@ -257,11 +257,11 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr,
        case 0:
                /* Timed out */
                errno = ETIMEDOUT;
-               return (-1);
+               break;
        case -1:
                /* Select error */
                debug("select: %s", strerror(errno));
-               return (-1);
+               break;
        case 1:
                /* Completed or failed */
                optval = 0;
@@ -269,18 +269,20 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr,
                if (getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &optval, 
                    &optlen) == -1)
                        debug("getsockopt: %s", strerror(errno));
-                       return (-1);
+                       break;
                if (optval != 0) {
                        errno = optval;
-                       return (-1);
+                       break;
                }
+               result = 0;
                break;
        default:
                /* Should not occur */
                fatal("Bogus return (%d) from select()", rc);
        }
 
-       return (0);
+       xfree(fdset);
+       return (result);
 }
 
 /*
This page took 0.073896 seconds and 5 git commands to generate.