Subject: bug#34469: 26.1; EWW stops renderring web page on null byte

From: Robert Pluim <[email-masked]>
Date: Wed, 27 Feb 2019 12:31:45 +0100

Robert Pluim <[email-masked]> writes:

Ping!

Eli, release or master?

> 2019-02-20  Robert Pluim  <[email-masked]>
>
> 	* lisp/net/eww.el (eww-display-html): Replace NULL characters with
> 	"\0", as libxml can't handle embedded NULLs.
> diff --git i/lisp/net/eww.el w/lisp/net/eww.el
> index 555b3bd591..06075b1ebd 100644
> --- i/lisp/net/eww.el
> +++ w/lisp/net/eww.el
> @@ -462,10 +462,12 @@ eww-display-html
>  		(condition-case nil
>  		    (decode-coding-region (point) (point-max) encode)
>  		  (coding-system-error nil))
> -                (save-excursion
> -                  ;; Remove CRLF before parsing.
> -                  (while (re-search-forward "\r$" nil t)
> -                    (replace-match "" t t)))
> +		(save-excursion
> +		  ;; Remove CRLF and NULL before parsing.
> +                  (while (re-search-forward "\\(\r$\\)\\|\\(\000\\)" nil t)
> +                    (replace-match (if (match-beginning 1)
> +                                       ""
> +                                     "\\0") t t)))
>  		(libxml-parse-html-region (point) (point-max))))))
>  	(source (and (null document)
>  		     (buffer-substring (point) (point-max)))))