Fix problem with degenerate <html base="."> specs in shr

* lisp/url/url-expand.el (url-expand-file-name): Don't bug out on
degenerate base/expander pairs (bug#39235).
This commit is contained in:
Lars Ingebrigtsen 2020-02-20 15:14:39 +01:00
parent 55ad194922
commit 3ac8349517

View file

@ -92,12 +92,19 @@ path components followed by `..' are removed, along with the `..' itself."
(cond
((= (length url) 0) ; nil or empty string
(url-recreate-url default))
((string-match url-nonrelative-link url) ; Fully-qualified URL, return it immediately
((string-match url-nonrelative-link url) ; Fully-qualified URL,
; return it immediately
url)
(t
(let* ((urlobj (url-generic-parse-url url))
(inhibit-file-name-handlers t)
(expander (url-scheme-get-property (url-type default) 'expand-file-name)))
(expander (if (url-type default)
(url-scheme-get-property (url-type default)
'expand-file-name)
;; If neither the default nor the URL to be
;; expanded have a protocol, then just use the
;; identity expander as a fallback.
'url-identity-expander)))
(if (string-match "^//" url)
(setq urlobj (url-generic-parse-url (concat (url-type default) ":"
url))))