mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-24 07:30:10 +01:00
Disallow board names which are too large for the filesytem to handle
This commit is contained in:
parent
317f616e82
commit
439795e63b
@ -446,6 +446,23 @@ function mod_new_board() {
|
||||
if (!preg_match('/^' . $config['board_regex'] . '$/u', $_POST['uri']))
|
||||
error(sprintf($config['error']['invalidfield'], 'URI'));
|
||||
|
||||
$bytes = 0;
|
||||
$chars = preg_split('//u', $_POST['uri'], -1, PREG_SPLIT_NO_EMPTY);
|
||||
foreach ($chars as $char) {
|
||||
$o = 0;
|
||||
$ord = ordutf8($char, $o);
|
||||
if ($ord > 0x0080)
|
||||
$bytes += 5; // @01ff
|
||||
else
|
||||
$bytes ++;
|
||||
}
|
||||
$bytes + strlen('posts_.frm');
|
||||
|
||||
if ($bytes > 255) {
|
||||
error('Your filesystem cannot handle a board URI of that length (' . $bytes . '/255 bytes)');
|
||||
exit;
|
||||
}
|
||||
|
||||
if (openBoard($_POST['uri'])) {
|
||||
error(sprintf($config['error']['boardexists'], $board['url']));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user