diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index 60512c67b8..486616c33d 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -394,6 +394,15 @@ class acp_groups
}
}
+ // Validate the length of "Maximum number of allowed recipients per private message" setting.
+ // We use 16777215 as a maximum because it matches MySQL unsigned mediumint maximum value
+ // which is the lowest amongst DBMSes supported by phpBB3
+ if ($max_recipients_error = validate_data($submit_ary, array('max_recipients' => array('num', false, 0, 16777215))))
+ {
+ // Replace "error" string with its real, localised form
+ $error = array_merge($error, array_map(array(&$user, 'lang'), $max_recipients_error));
+ }
+
if (!sizeof($error))
{
// Only set the rank, colour, etc. if it's changed or if we're adding a new
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index bc38c1563d..e79e5a6de3 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -566,6 +566,9 @@ $lang = array_merge($lang, array(
'TEST_CONNECTION' => 'Test connection',
'THE_TEAM' => 'The team',
'TIME' => 'Time',
+
+ 'TOO_LARGE' => 'The value you entered is too large.',
+ 'TOO_LARGE_MAX_RECIPIENTS' => 'The value of Maximum number of allowed recipients per private message setting you entered is too large.',
'TOO_LONG' => 'The value you entered is too long.',
@@ -608,6 +611,9 @@ $lang = array_merge($lang, array(
'TOO_SHORT_EMAIL_CONFIRM' => 'The e-mail address confirmation you entered is too short.',
'TOO_SHORT_WEBSITE' => 'The website address you entered is too short.',
'TOO_SHORT_YIM' => 'The Yahoo! Messenger name you entered is too short.',
+
+ 'TOO_SMALL' => 'The value you entered is too small.',
+ 'TOO_SMALL_MAX_RECIPIENTS' => 'The value of Maximum number of allowed recipients per private message setting you entered is too small.',
'TOPIC' => 'Topic',
'TOPICS' => 'Topics',