From ee9c70ab7f59f1c035aa9ea1982bf9c999d2e57e Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Thu, 17 Mar 2011 17:33:11 +0000 Subject: [PATCH] Fix E_NOTICE from indexing into empty string. Signed-off-by: Edward Z. Yang --- NEWS | 2 ++ library/HTMLPurifier/TagTransform/Font.php | 16 +++++++++------- tests/HTMLPurifier/TagTransformTest.php | 4 ++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 4d1ff862..486860d0 100644 --- a/NEWS +++ b/NEWS @@ -43,6 +43,8 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier Reported by Neike Taika-Tessaro. - Fix missing numeric entities on DirectLex; thanks Neike Taika-Tessaro for reporting. +- Fix harmless notice from indexing into empty string. Thanks Matthijs + Kooijman for reporting. 4.2.0, released 2010-09-15 ! Added %Core.RemoveProcessingInstructions, which lets you remove diff --git a/library/HTMLPurifier/TagTransform/Font.php b/library/HTMLPurifier/TagTransform/Font.php index ed246378..9db2db79 100644 --- a/library/HTMLPurifier/TagTransform/Font.php +++ b/library/HTMLPurifier/TagTransform/Font.php @@ -63,13 +63,15 @@ class HTMLPurifier_TagTransform_Font extends HTMLPurifier_TagTransform // handle size transform if (isset($attr['size'])) { // normalize large numbers - if ($attr['size']{0} == '+' || $attr['size']{0} == '-') { - $size = (int) $attr['size']; - if ($size < -2) $attr['size'] = '-2'; - if ($size > 4) $attr['size'] = '+4'; - } else { - $size = (int) $attr['size']; - if ($size > 7) $attr['size'] = '7'; + if ($attr['size'] !== '') { + if ($attr['size']{0} == '+' || $attr['size']{0} == '-') { + $size = (int) $attr['size']; + if ($size < -2) $attr['size'] = '-2'; + if ($size > 4) $attr['size'] = '+4'; + } else { + $size = (int) $attr['size']; + if ($size > 7) $attr['size'] = '7'; + } } if (isset($this->_size_lookup[$attr['size']])) { $prepend_style .= 'font-size:' . diff --git a/tests/HTMLPurifier/TagTransformTest.php b/tests/HTMLPurifier/TagTransformTest.php index 2e351016..8669d5b9 100644 --- a/tests/HTMLPurifier/TagTransformTest.php +++ b/tests/HTMLPurifier/TagTransformTest.php @@ -162,6 +162,10 @@ class HTMLPurifier_TagTransformTest extends HTMLPurifier_Harness $this->assertSizeToStyle($transformer, '+3', '200%'); $this->assertSizeToStyle($transformer, '+4', '300%'); $this->assertSizeToStyle($transformer, '+5', '300%'); + $this->assertTransformation( + $transformer, 'font', array('size' => ''), + 'span', array() + ); // test multiple transforms, the alphabetical ordering is important $this->assertTransformation( -- 2.11.4.GIT