aboutsummaryrefslogtreecommitdiff
path: root/lib/Apache/Inject
diff options
context:
space:
mode:
authorroot <root@rbsd.ankarstrom.se>2021-04-26 19:33:46 +0000
committerroot <root@rbsd.ankarstrom.se>2021-04-26 19:33:46 +0000
commitdd107ea3d822f14f08198135ae2fc5b3b1d454b6 (patch)
treec72f7e27c099aee3670ab4afcd53a9f4dc25c2ca /lib/Apache/Inject
parente1c7d5442ca1d3bd67c200d2dbd94bd0e40e72bd (diff)
downloadApache-Inject-dd107ea3d822f14f08198135ae2fc5b3b1d454b6.tar.gz
Fix regex bug, support HTML comments
I added \s* after <body> to match any potential newline (and, for good measure, whitespace) after <body>. One would usually rather have this: <body> My header than this: <body>My header
Diffstat (limited to 'lib/Apache/Inject')
-rw-r--r--lib/Apache/Inject/Handler.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/Apache/Inject/Handler.pm b/lib/Apache/Inject/Handler.pm
index 0e054e7..ae81fbb 100644
--- a/lib/Apache/Inject/Handler.pm
+++ b/lib/Apache/Inject/Handler.pm
@@ -12,8 +12,11 @@ use Apache2::RequestUtil ();
my $doc = qr{
\A
(?<head> \s*
+ ( <!-- .*? --> )? \s*
( <!doctype[^>]*> )? \s*
+ ( <!-- .*? --> )? \s*
( <html[^>]*> )? \s*
+ ( <!-- .*? --> )? \s*
( <head[^>]*> .*? </head> \s*
| ( <meta[^>]*> \s*
| <link[^>]*> \s*
@@ -21,12 +24,16 @@ my $doc = qr{
| <style[^>]*> .*? </style> \s*
| <script[^>]*> .*? </script> \s*
| <base[^>]*> \s*
+ | <!-- .*? --> \s*
)+
)?
- (<body[^>]*>)?
+ ( <!-- .*? --> )? \s*
+ ( <body[^>]*> )? \s*
)?
(?<body> .*? )
- (?<rest> </html> \s* )?
+ (?<rest> </html> \s*
+ ( <!-- .*? --> )? \s*
+ )?
\z
}xmsi;