mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-07-30 19:00:10 +02:00
Fix possible infinite loop by incrementing everybody's offsets. Add printTokens debugger function. Refine Linkify parent node checks (also check excludes, although technically later steps will catch it!)
git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1218 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
@@ -19,7 +19,7 @@ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector
|
||||
} else {
|
||||
$parent = $definition->info_parent_def;
|
||||
}
|
||||
if (!isset($parent->child->elements['a'])) {
|
||||
if (!isset($parent->child->elements['a']) || isset($parent->excludes['a'])) {
|
||||
// parent element does not allow link elements, don't bother
|
||||
return;
|
||||
}
|
||||
@@ -29,8 +29,8 @@ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector
|
||||
// "google.com"
|
||||
return;
|
||||
}
|
||||
// there is/are URL(s). Let's split the string:
|
||||
|
||||
// there is/are URL(s). Let's split the string:
|
||||
$bits = preg_split('#((?:https?|ftp)://[^\s\'"<>()]+)#S', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
$token = array();
|
||||
|
@@ -256,8 +256,9 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy
|
||||
$injector =& $context->get('Injector');
|
||||
$current_injector =& $context->get('CurrentInjector');
|
||||
|
||||
if (isset($injector[$current_injector])) {
|
||||
$injector_skip[$current_injector] = count($token);
|
||||
$offset = count($token);
|
||||
for ($i = 0; $i <= $current_injector; $i++) {
|
||||
$injector_skip[$i] += $offset;
|
||||
}
|
||||
|
||||
} elseif ($token) {
|
||||
|
Reference in New Issue
Block a user