]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2005/06/16 08:00:00
authordjm <djm>
Fri, 17 Jun 2005 02:55:03 +0000 (02:55 +0000)
committerdjm <djm>
Fri, 17 Jun 2005 02:55:03 +0000 (02:55 +0000)
     [canohost.c channels.c sshd.c]
     don't exit if getpeername fails for forwarded ports; bugzilla #1054;
     ok djm

ChangeLog
canohost.c
channels.c
sshd.c

index dba055ceb17f8ae6746c258902a436261e9d1280..353b030babe0def4950466be1e05fd21eb0dc343 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,7 +4,10 @@
      [channels.c channels.h clientloop.c clientloop.h ssh.c]
      move x11_get_proto from ssh.c to clientloop.c, to make muliplexed xfwd
      easier later; ok deraadt@
-
+   - markus@cvs.openbsd.org 2005/06/16 08:00:00
+     [canohost.c channels.c sshd.c]
+     don't exit if getpeername fails for forwarded ports; bugzilla #1054;
+     ok djm
 
 20050616
  - (djm) OpenBSD CVS Sync
index 94d666432f0e24403fe30a00926cb3918009d0b0..c3ab455561ecf6f66bb7ae0c7852cf99340f8b4c 100644 (file)
@@ -12,7 +12,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: canohost.c,v 1.42 2005/02/18 03:05:53 djm Exp $");
+RCSID("$OpenBSD: canohost.c,v 1.43 2005/06/16 08:00:00 markus Exp $");
 
 #include "packet.h"
 #include "xmalloc.h"
@@ -346,7 +346,7 @@ get_sock_port(int sock, int local)
        } else {
                if (getpeername(sock, (struct sockaddr *)&from, &fromlen) < 0) {
                        debug("getpeername failed: %.100s", strerror(errno));
-                       cleanup_exit(255);
+                       return -1;
                }
        }
 
index 440043b9cf8af966a144fe1579d0244e7ece6ef0..66b15f5b5c595a12f32df2281979f54e1847a583 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: channels.c,v 1.215 2005/06/16 03:38:36 djm Exp $");
+RCSID("$OpenBSD: channels.c,v 1.216 2005/06/16 08:00:00 markus Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -1178,7 +1178,7 @@ port_open_helper(Channel *c, char *rtype)
        int direct;
        char buf[1024];
        char *remote_ipaddr = get_peer_ipaddr(c->sock);
-       u_short remote_port = get_peer_port(c->sock);
+       int remote_port = get_peer_port(c->sock);
 
        direct = (strcmp(rtype, "direct-tcpip") == 0);
 
@@ -1208,7 +1208,7 @@ port_open_helper(Channel *c, char *rtype)
                }
                /* originator host and port */
                packet_put_cstring(remote_ipaddr);
-               packet_put_int(remote_port);
+               packet_put_int((u_int)remote_port);
                packet_send();
        } else {
                packet_start(SSH_MSG_PORT_OPEN);
diff --git a/sshd.c b/sshd.c
index 7ee2dd68666753532e870d4b4822f4db89ec354e..ed4158801d386ad818e12da392048f5c92db3756 100644 (file)
--- a/sshd.c
+++ b/sshd.c
@@ -42,7 +42,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshd.c,v 1.309 2005/04/06 09:43:59 djm Exp $");
+RCSID("$OpenBSD: sshd.c,v 1.310 2005/06/16 08:00:00 markus Exp $");
 
 #include <openssl/dh.h>
 #include <openssl/bn.h>
@@ -1626,7 +1626,10 @@ main(int ac, char **av)
            setsockopt(sock_in, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0)
                error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno));
 
-       remote_port = get_remote_port();
+       if ((remote_port = get_remote_port()) < 0) {
+               debug("get_remote_port failed");
+               cleanup_exit(255);
+       }
        remote_ip = get_remote_ipaddr();
 
 #ifdef SSH_AUDIT_EVENTS
This page took 0.061865 seconds and 5 git commands to generate.