Ignore the zero byte at the start of the rlogin main protocol
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 1 Feb 2001 14:09:00 +0000 (14:09 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 1 Feb 2001 14:09:00 +0000 (14:09 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@920 cda61777-01e9-0310-a592-d414129be87e

rlogin.c

index 9ce7309..e20b9e6 100644 (file)
--- a/rlogin.c
+++ b/rlogin.c
@@ -49,8 +49,22 @@ static int rlogin_receive (Socket skt, int urgent, char *data, int len) {
          * on 0x10 and 0x20 respectively. I'm not convinced it's
          * worth it...
          */
+    } else {
+        /*
+         * Main rlogin protocol. This is really simple: the first
+         * byte is expected to be NULL and is ignored, and the rest
+         * is printed.
+         */
+        static int firstbyte = 1;
+        if (firstbyte) {
+            if (data[0] == '\0') {
+                data++;
+                len--;
+            }
+            firstbyte = 0;
+        }
+        c_write(data, len);
     }
-    c_write(data, len);
     return 1;
 }