0012850: '#' in urls should not be replaced
authorPhilipp Schüle <p.schuele@metaways.de>
Fri, 24 Mar 2017 10:49:51 +0000 (11:49 +0100)
committerPhilipp Schüle <p.schuele@metaways.de>
Mon, 27 Mar 2017 11:47:48 +0000 (13:47 +0200)
https://forge.tine20.org/view.php?id=12850

Change-Id: Ic370d2e4148d36f7276daeab3d73dd0aa260d836
Reviewed-on: http://gerrit.tine20.com/customers/4413
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
Tested-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Felamimail/HTMLPurifier/AttrTransform/AValidator.php

index a35ed13..e620071 100644 (file)
@@ -8,7 +8,7 @@
  * @subpackage  HTMLPurifier
  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
  * @author      Philipp Schüle <p.schuele@metaways.de>
- * @copyright   Copyright (c) 2009 Metaways Infosystems GmbH (http://www.metaways.de)
+ * @copyright   Copyright (c) 2009-2017 Metaways Infosystems GmbH (http://www.metaways.de)
  */
 
 /**
@@ -23,12 +23,12 @@ class Felamimail_HTMLPurifier_AttrTransform_AValidator extends HTMLPurifier_Attr
      * (non-PHPdoc)
      * @see HTMLPurifier_AttrTransform::transform()
      */
-    function transform($attr, $config, $context)
+    public function transform($attr, $config, $context)
     {
         $attr['target'] = '_blank';
         
         if (isset($attr['href'])) {
-            $href = preg_replace('/#(.*)/', '#felamimail_inline_$1', $attr['href']);
+            $href = preg_replace('/^#([^\/.]+)$/', '#felamimail_inline_$1', $attr['href']);
             
             if ($attr['href'] != $href) {
                 $attr['target'] = '_self';