Hi Apache developers,
over the time I've accumulated some patches for mod_proxy_html which I
would like to get reviewed, and get applied in SVN (best both, trunk and
then backported to 2.4). This is something that I feel to owe the Apache
httpd community.
So, lets first start with a bug that lets mod_proxy_html delete the
wrong data from HTML code when a "http-equiv" meta tag specifies a
Content-Type behind any other "http-equiv" meta tag (Thomas, Ewald, this
is issue #21648 in our Mantis). For better understanding of the issue,
please consider the following HTML file treated by mod_proxy_html:
<html>
<head>
<meta http-equiv="X-Dummy-Header" content="dummy value">
<style type="text/css">div.ok { color: green; } </style>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" >
<head>
<body>
<div class="ok">If the metafix is not broken, this text should get
rendered in green color.</div>
</body>
</html>
Without the attached patch, mod_proxy_html will remove the <style> tag
inside the <head> tag as soon as it parses the meta tag with the
http-equiv="Content-Type" attribute. With the attached patch applied,
mod_proxy_html removes the meta tag with the http-equiv="Content-Type"
attribute instead. I guess this is what the code intended to do.
The attached patch is based on httpd trunk, rev. 1579365.
Please provide feedback whether I should file an issue in Apaches
Bugzilla or whether this isn't needed in this case.
Regards,
Micha
Index: modules/filters/mod_proxy_html.c
===================================================================
--- modules/filters/mod_proxy_html.c (Revision 1579365)
+++ modules/filters/mod_proxy_html.c (Arbeitskopie)
@@ -688,8 +688,8 @@
}
else if (!strncasecmp(header, "Content-Type", 12)) {
ret = apr_palloc(r->pool, sizeof(meta));
- ret->start = pmatch[0].rm_so;
- ret->end = pmatch[0].rm_eo;
+ ret->start = offs+pmatch[0].rm_so;
+ ret->end = offs+pmatch[0].rm_eo;
}
if (header && content) {
#ifndef GO_FASTER