]> granicus.if.org Git - mutt/commitdiff
Clear connection input buffer when closing.
authorBeck, Andre <beck@ibh.de>
Fri, 11 Oct 2019 11:17:58 +0000 (19:17 +0800)
committerKevin McCarthy <kevin@8t8.us>
Fri, 11 Oct 2019 11:29:45 +0000 (19:29 +0800)
An RFC-violating reply from the Dovecot SMTP submission service
uncovered a bug in Mutt.  Mutt was not clearing out the input buffer
when closing the connection.

Dovecot was including an extra 250 response after data submission:

  DATA
  354 OK
  Subject: Test 3

  Test 3
  .
  250 2.0.0  223 byte chunk, total 223
  250 2.0.0 OK id=1iIqT1-0004wS-Ac
  quit
  221 2.0.0 Bye

The multiline 250 reply requires a hyphen in the first response.  Mutt
closes the connection after the quit, but ends up leaving the
unexpected second line in the input buffer.  This causes an error in
the next usage of the connection.

Clean out bufpos and available when closing the socket.

mutt_socket.c

index 9c22f35f91741424fb2b221760bbbc3add44cc19..44842cc45eeed8fd096e2515bc855b6813f61640 100644 (file)
@@ -84,6 +84,8 @@ int mutt_socket_close (CONNECTION* conn)
 
   conn->fd = -1;
   conn->ssf = 0;
+  conn->bufpos = 0;
+  conn->available = 0;
 
   return rc;
 }