Aleksander Machniak
2014-02-13 5e8da2b5c9d69872d17c857e239b1e30e9c23976
program/lib/Roundcube/html.php
@@ -269,19 +269,28 @@
            return '';
        }
        $allowed_f = array_flip((array)$allowed);
        $allowed_f  = array_flip((array)$allowed);
        $attrib_arr = array();
        foreach ($attrib as $key => $value) {
            // skip size if not numeric
            if ($key == 'size' && !is_numeric($value)) {
                continue;
            }
            // ignore "internal" or not allowed attributes
            if ($key == 'nl' || ($allowed && !isset($allowed_f[$key])) || $value === null) {
            // ignore "internal" or empty attributes
            if ($key == 'nl' || $value === null) {
                continue;
            }
            // ignore not allowed attributes
            if (!empty($allowed)) {
                $is_data_attr = substr_compare($key, 'data-', 0, 5) === 0;
                if (!isset($allowed_f[$key]) && (!$is_data_attr || !isset($allowed_f['data-*']))) {
                    continue;
                }
            }
            // skip empty eventhandlers
            if (preg_match('/^on[a-z]+/', $key) && !$value) {
                continue;