]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
- markus@cvs.openbsd.org 2001/02/23 15:37:45
authorBen Lindstrom <mouring@eviladmin.org>
Mon, 26 Feb 2001 20:13:32 +0000 (20:13 +0000)
committerBen Lindstrom <mouring@eviladmin.org>
Mon, 26 Feb 2001 20:13:32 +0000 (20:13 +0000)
     [session.c]
     handle SSH_PROTOFLAG_SCREEN_NUMBER for buggy clients

ChangeLog
session.c

index bba7a665e08f5ccffe652187af178b8f79e2d034..f328656b461fd698cf49c347576da42b18e30030 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 20010226
  - (bal) Applied shutdown() patch for sftp.c by  Corinna Vinschen 
    <vinschen@redhat.com>
+ - (bal) OpenBSD Sync
+   - markus@cvs.openbsd.org 2001/02/23 15:37:45
+     [session.c]
+     handle SSH_PROTOFLAG_SCREEN_NUMBER for buggy clients
 
 20010226
  - (bal) Fixed bsd-snprinf.c so it now honors 'BROKEN_SNPRINTF' again.
  - Wrote replacements for strlcpy and mkdtemp
  - Released 1.0pre1
 
-$Id: ChangeLog,v 1.824 2001/02/26 20:04:45 mouring Exp $
+$Id: ChangeLog,v 1.825 2001/02/26 20:13:32 mouring Exp $
index 3434aafc4f9ff7e9042f26c888eb8cb7493798ea..ee14afa686228387a05242d3b555c7cfe166c870 100644 (file)
--- a/session.c
+++ b/session.c
@@ -33,7 +33,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: session.c,v 1.56 2001/02/16 14:03:43 markus Exp $");
+RCSID("$OpenBSD: session.c,v 1.57 2001/02/23 15:37:45 markus Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -216,6 +216,7 @@ do_authenticated(struct passwd * pw)
        int n_bytes;
        int plen;
        u_int proto_len, data_len, dlen;
+       int screen_flag;
 
        /*
         * Cancel the alarm we set to limit the time taken for
@@ -340,13 +341,18 @@ do_authenticated(struct passwd * pw)
                        s->auth_proto = packet_get_string(&proto_len);
                        s->auth_data = packet_get_string(&data_len);
 
-                       if (packet_get_protocol_flags() & SSH_PROTOFLAG_SCREEN_NUMBER) {
-                               debug2("SSH_PROTOFLAG_SCREEN_NUMBER == true");
+                       screen_flag = packet_get_protocol_flags() &
+                           SSH_PROTOFLAG_SCREEN_NUMBER;
+                       debug2("SSH_PROTOFLAG_SCREEN_NUMBER: %d", screen_flag);
+
+                       if (packet_remaining() == 4) {
+                               if (!screen_flag)
+                                       debug2("Buggy client: "
+                                           "X11 screen flag missing");
                                packet_integrity_check(plen,
                                    4 + proto_len + 4 + data_len + 4, type);
                                s->screen = packet_get_int();
                        } else {
-                               debug2("SSH_PROTOFLAG_SCREEN_NUMBER == false");
                                packet_integrity_check(plen,
                                    4 + proto_len + 4 + data_len, type);
                                s->screen = 0;