summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/nnimap.el2
2 files changed, 7 insertions, 0 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index b9ae796782d..7910d74fb15 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,5 +1,10 @@
2015-02-14 Lars Ingebrigtsen <larsi@gnus.org>
+ * nnimap.el (nnimap-retrieve-headers): If the server closes connection
+ during header retrieval, error out instead of interpreting the data in
+ the buffer as the only messages there. This way, we don't mark
+ articles as read on a server hangup (bug#19035).
+
* mm-decode.el (mm-head-p): New function.
(mm-display-part): Go to a blank line when inserting parts internally.
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index e7f91b7cc33..4a9ca744b9f 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -196,6 +196,8 @@ textual parts.")
(nnimap-article-ranges (gnus-compress-sequence articles))
(nnimap-header-parameters))
t)
+ (unless (process-live-p (get-buffer-process (current-buffer)))
+ (error "Server closed connection"))
(nnimap-transform-headers)
(nnheader-remove-cr-followed-by-lf))
(insert-buffer-substring