diff --git a/library/HTMLPurifier/AttrDef/HTML/Class.php b/library/HTMLPurifier/AttrDef/HTML/Class.php index c925cd39..370068d9 100644 --- a/library/HTMLPurifier/AttrDef/HTML/Class.php +++ b/library/HTMLPurifier/AttrDef/HTML/Class.php @@ -21,11 +21,14 @@ class HTMLPurifier_AttrDef_HTML_Class extends HTMLPurifier_AttrDef_HTML_Nmtokens foreach ($tokens as $token) { if ( ($allowed === null || isset($allowed[$token])) && - !isset($forbidden[$token]) + !isset($forbidden[$token]) && + // We need this O(n) check because of PHP's array + // implementation that casts -0 to 0. + !in_array($token, $ret, true) ) { - $ret[$token] = true; + $ret[] = $token; } } - return array_keys($ret); + return $ret; } }