Fix infinite loop when converting invalid html to plaintext (#1489566)

pull/165/head
Thomas Bruederli 11 years ago
parent 774deaded1
commit eecd9ce0f9

@ -616,6 +616,10 @@ class rcube_html2text
break;
}
// abort on invalid tag structure (e.g. no closing tag found)
else {
break;
}
}
while ($end || $next);
}

@ -75,4 +75,32 @@ EOF;
$this->assertContains('>> INNER 3', $res, 'Quote inner');
$this->assertContains('> OUTER END', $res, 'Quote outer');
}
function test_broken_blockquotes()
{
// no end tag
$html = <<<EOF
Begin<br>
<blockquote>QUOTED TEXT
<blockquote>
NO END TAG FOUND
EOF;
$ht = new rcube_html2text($html, false, false);
$res = $ht->get_text();
$this->assertContains('QUOTED TEXT NO END TAG FOUND', $res, 'No quoating on invalid html');
// with some (nested) end tags
$html = <<<EOF
Begin<br>
<blockquote>QUOTED TEXT
<blockquote>INNER 1</blockquote>
<blockquote>INNER 2</blockquote>
NO END TAG FOUND
EOF;
$ht = new rcube_html2text($html, false, false);
$res = $ht->get_text();
$this->assertContains('QUOTED TEXT INNER 1 INNER 2 NO END', $res, 'No quoating on invalid html');
}
}

Loading…
Cancel
Save