aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/composer.lock8
-rw-r--r--phpBB/includes/functions.php10
-rw-r--r--phpBB/includes/functions_upload.php2
-rw-r--r--phpBB/includes/message_parser.php9
-rw-r--r--tests/functional/posting_test.php28
-rw-r--r--tests/upload/filespec_test.php2
6 files changed, 36 insertions, 23 deletions
diff --git a/phpBB/composer.lock b/phpBB/composer.lock
index fce3bbc801..872509884c 100644
--- a/phpBB/composer.lock
+++ b/phpBB/composer.lock
@@ -220,12 +220,12 @@
"source": {
"type": "git",
"url": "https://github.com/s9e/TextFormatter.git",
- "reference": "5b7d4c40bdef53f26ca6b09e85163f28e852f16b"
+ "reference": "31fe627a4a82d41098a2db8036287c0693c79f13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/5b7d4c40bdef53f26ca6b09e85163f28e852f16b",
- "reference": "5b7d4c40bdef53f26ca6b09e85163f28e852f16b",
+ "url": "https://api.github.com/repos/s9e/TextFormatter/zipball/31fe627a4a82d41098a2db8036287c0693c79f13",
+ "reference": "31fe627a4a82d41098a2db8036287c0693c79f13",
"shasum": ""
},
"require": {
@@ -270,7 +270,7 @@
"parser",
"shortcodes"
],
- "time": "2015-04-22 15:15:46"
+ "time": "2015-04-25 20:58:33"
},
{
"name": "symfony/config",
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 957b475616..3828fde1ce 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -1975,13 +1975,19 @@ function phpbb_request_http_version()
{
global $request;
+ $version = '';
if ($request && $request->server('SERVER_PROTOCOL'))
{
- return $request->server('SERVER_PROTOCOL');
+ $version = $request->server('SERVER_PROTOCOL');
}
else if (isset($_SERVER['SERVER_PROTOCOL']))
{
- return $_SERVER['SERVER_PROTOCOL'];
+ $version = $_SERVER['SERVER_PROTOCOL'];
+ }
+
+ if (!empty($version) && is_string($version) && preg_match('#^HTTP/[0-9]\.[0-9]$#', $version))
+ {
+ return $version;
}
return 'HTTP/1.0';
diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php
index ac5313ca06..dcc9bc4874 100644
--- a/phpBB/includes/functions_upload.php
+++ b/phpBB/includes/functions_upload.php
@@ -219,6 +219,8 @@ class filespec
*/
static public function get_extension($filename)
{
+ $filename = utf8_basename($filename);
+
if (strpos($filename, '.') === false)
{
return '';
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index bc53336a3f..9fe598d7fb 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1242,15 +1242,6 @@ class parse_message extends bbcode_firstpass
// Parse this message
$this->message = $parser->parse(htmlspecialchars_decode($this->message, ENT_QUOTES));
- // Check for out-of-bounds characters that are currently
- // not supported by utf8_bin in MySQL
- if (preg_match_all('/[\x{10000}-\x{10FFFF}]/u', $this->message, $matches))
- {
- $character_list = implode('<br />', $matches[0]);
- $this->warn_msg[] = $user->lang('UNSUPPORTED_CHARACTERS_MESSAGE', $character_list);
- return $update_this_message ? $this->warn_msg : $return_message;
- }
-
// Check for "empty" message. We do not check here for maximum length, because bbcode, smilies, etc. can add to the length.
// The maximum length check happened before any parsings.
if ($mode === 'post' && utf8_clean_string($this->message) === '')
diff --git a/tests/functional/posting_test.php b/tests/functional/posting_test.php
index fd802eed45..7acf375c5d 100644
--- a/tests/functional/posting_test.php
+++ b/tests/functional/posting_test.php
@@ -45,18 +45,30 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
self::create_post(2,
1,
- 'Unsupported characters',
- "This is a test with these weird characters: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6",
- array(),
- 'Your message contains the following unsupported characters'
- );
-
- self::create_post(2,
- 1,
"Unsupported: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6",
'This is a test with emoji characters in the topic title.',
array(),
'Your subject contains the following unsupported characters'
);
}
+
+ public function test_supported_unicode_characters()
+ {
+ $this->login();
+
+ $post = $this->create_topic(2, 'Test Topic 1', 'This is a test topic posted by the testing framework.');
+ $this->create_post(2, $post['topic_id'], 'Re: Test Topic 1', "This is a test with these weird characters: \xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6");
+ $crawler = self::request('GET', "viewtopic.php?t={$post['topic_id']}&sid={$this->sid}");
+ $this->assertContains("\xF0\x9F\x88\xB3 \xF0\x9F\x9A\xB6", $crawler->text());
+ }
+
+ public function test_html_entities()
+ {
+ $this->login();
+
+ $post = $this->create_topic(2, 'Test Topic 1', 'This is a test topic posted by the testing framework.');
+ $this->create_post(2, $post['topic_id'], 'Re: Test Topic 1', '&#128512;');
+ $crawler = self::request('GET', "viewtopic.php?t={$post['topic_id']}&sid={$this->sid}");
+ $this->assertContains('&#128512;', $crawler->text());
+ }
}
diff --git a/tests/upload/filespec_test.php b/tests/upload/filespec_test.php
index f6deb242a2..f953970f64 100644
--- a/tests/upload/filespec_test.php
+++ b/tests/upload/filespec_test.php
@@ -216,6 +216,8 @@ class phpbb_filespec_test extends phpbb_test_case
array('file.phpbb.gif', 'gif'),
array('file..', ''),
array('.file..jpg.webp', 'webp'),
+ array('/test.com/file', ''),
+ array('/test.com/file.gif', 'gif'),
);
}