aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2013-11-09 11:14:55 -0600
committerNathan Guse <nathaniel.guse@gmail.com>2013-11-09 11:14:55 -0600
commit2e5117a71eb64c734e5738235c44ef92818ca33b (patch)
treee5a0e128b2e6a226bbf3328b7bae8fed275d4799
parent6370970f13d58f617379da64efb1f88a522f3f03 (diff)
downloadforums-2e5117a71eb64c734e5738235c44ef92818ca33b.tar
forums-2e5117a71eb64c734e5738235c44ef92818ca33b.tar.gz
forums-2e5117a71eb64c734e5738235c44ef92818ca33b.tar.bz2
forums-2e5117a71eb64c734e5738235c44ef92818ca33b.tar.xz
forums-2e5117a71eb64c734e5738235c44ef92818ca33b.zip
[ticket/11943] Throw an exception if DEFINE is setup improperly
PHPBB3-11943
-rw-r--r--phpBB/phpbb/template/twig/tokenparser/defineparser.php7
-rw-r--r--tests/template/template_test.php8
2 files changed, 15 insertions, 0 deletions
diff --git a/phpBB/phpbb/template/twig/tokenparser/defineparser.php b/phpBB/phpbb/template/twig/tokenparser/defineparser.php
index 21add0c17c..8484f2e81a 100644
--- a/phpBB/phpbb/template/twig/tokenparser/defineparser.php
+++ b/phpBB/phpbb/template/twig/tokenparser/defineparser.php
@@ -30,6 +30,13 @@ class defineparser extends \Twig_TokenParser
$stream->next();
$value = $this->parser->getExpressionParser()->parseExpression();
+ if ($value instanceof \Twig_Node_Expression_Name)
+ {
+ // This would happen if someone improperly formed their DEFINE syntax
+ // e.g. <!-- DEFINE $VAR = foo -->
+ throw new \Twig_Error_Syntax('Invalid DEFINE', $token->getLine(), $this->parser->getFilename());
+ }
+
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
} else {
$capture = true;
diff --git a/tests/template/template_test.php b/tests/template/template_test.php
index 0ff469779d..6e9b7d3ee9 100644
--- a/tests/template/template_test.php
+++ b/tests/template/template_test.php
@@ -561,4 +561,12 @@ EOT
$expect = 'outer - 0[outer|4]outer - 1[outer|4]middle - 0[middle|1]outer - 2 - test[outer|4]middle - 0[middle|2]middle - 1[middle|2]outer - 3[outer|4]middle - 0[middle|3]middle - 1[middle|3]middle - 2[middle|3]';
$this->assertEquals($expect, str_replace(array("\n", "\r", "\t"), '', $this->display('test')), 'Ensuring S_NUM_ROWS is correct after modification');
}
+
+ /**
+ * @expectedException Twig_Error_Syntax
+ */
+ public function test_define_error()
+ {
+ $this->run_template('define_error.html', array(), array(), array(), '');
+ }
}