[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master b7d3c1e 1/2: Forestall "Selected deleted buffer" in url-http-gene
From: |
Lars Ingebrigtsen |
Subject: |
master b7d3c1e 1/2: Forestall "Selected deleted buffer" in url-http-generic-filter |
Date: |
Mon, 9 Aug 2021 10:03:20 -0400 (EDT) |
branch: master
commit b7d3c1e57743df464cd7c3ee43493fbbd2ae8705
Author: dickmao <none>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Forestall "Selected deleted buffer" in url-http-generic-filter
* lisp/url/url-http.el (url-http-generic-filter): Check that
corresponding buffer is still live before using it (bug#49928).
---
lisp/url/url-http.el | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index e3c1786..ba13a17 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1494,17 +1494,18 @@ The return value of this function is the retrieval
buffer."
;; Sometimes we get a zero-length data chunk after the process has
;; been changed to 'free', which means it has no buffer associated
;; with it. Do nothing if there is no buffer, or 0 length data.
- (and (process-buffer proc)
- (/= (length data) 0)
- (with-current-buffer (process-buffer proc)
- (url-http-debug "Calling after change function `%s' for `%S'"
url-http-after-change-function proc)
- (funcall url-http-after-change-function
- (point-max)
- (progn
- (goto-char (point-max))
- (insert data)
- (point-max))
- (length data)))))
+ (let ((b (process-buffer proc)))
+ (when (and (buffer-live-p b) (not (zerop (length data))))
+ (with-current-buffer b
+ (url-http-debug "Calling after change function `%s' for `%S'"
+ url-http-after-change-function proc)
+ (funcall url-http-after-change-function
+ (point-max)
+ (progn
+ (goto-char (point-max))
+ (insert data)
+ (point-max))
+ (length data))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; file-name-handler stuff from here on out