pure-ftpd (1.0.28-3+squeeze1) src/ftp_parser.c

Summary

 src/ftp_parser.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

    
download this patch

Patch contents

--- pure-ftpd-1.0.28.orig/src/ftp_parser.c
+++ pure-ftpd-1.0.28/src/ftp_parser.c
@@ -57,14 +57,20 @@
  * -Frank.
  */
 
+static size_t scanned;
+static size_t readnbd;
+
+static void flush_cmd(void)
+{
+    scanned = readnbd = (size_t) 0U;
+}
+
 int sfgets(void)
 {
     struct pollfd pfd;
     int pollret;
     ssize_t readnb;
     signed char seen_r = 0;
-    static size_t scanned;
-    static size_t readnbd;
     
     if (scanned > (size_t) 0U) {       /* support pipelining */
         readnbd -= scanned;        
@@ -362,6 +368,7 @@
             addreply_noformat(234, "AUTH TLS OK.");
             doreply();
             if (tls_cnx == NULL) {
+                flush_cmd();
                 (void) tls_init_new_session();
             }
             goto wayout;