summaryrefslogtreecommitdiff
path: root/lisp/url
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-05-15 07:12:26 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-05-15 07:12:26 +0200
commit4f1df40db36b221e7842bd75d6281922dcb268ee (patch)
treec514769342774a9a23fb2bf63eb24ef53d8774ce /lisp/url
parent15bd081ce608c9ebdd379dccc728618664d458a6 (diff)
downloademacs-4f1df40db36b221e7842bd75d6281922dcb268ee.tar.gz
Fix obscure HTTP chunked parsing problem
* lisp/url/url-http.el (url-http-chunked-encoding-after-change-function): Ensure that we parse the entire initial chunked header as the length (bug#35658).
Diffstat (limited to 'lisp/url')
-rw-r--r--lisp/url/url-http.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 03b863b69a8..48e29987a51 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1084,6 +1084,12 @@ the end of the document."
;; need to spin some more.
(url-http-debug "Did not see start of chunk @ %d!" (point))
(setq read-next-chunk nil))
+ ;; The data we got may have started in the middle of the
+ ;; initial chunk header, so move back to the start of the
+ ;; line and re-compute.
+ (when (= url-http-chunked-counter 0)
+ (beginning-of-line)
+ (looking-at regexp))
(add-text-properties (match-beginning 0) (match-end 0)
(list 'start-open t
'end-open t