Issue 9926: Limit the length of data to store in the apcontact table
This commit is contained in:
parent
87c1533516
commit
da8d5f5015
|
@ -241,6 +241,10 @@ class DBStructure
|
||||||
// Assign all field that are present in the table
|
// Assign all field that are present in the table
|
||||||
foreach ($fieldnames as $field) {
|
foreach ($fieldnames as $field) {
|
||||||
if (isset($data[$field])) {
|
if (isset($data[$field])) {
|
||||||
|
// Limit the length of varchar, varbinary, char and binrary fields
|
||||||
|
if (is_string($data[$field]) && preg_match("/[char|binary]\((\d*)\)/", $definition[$table]['fields'][$field]['type'], $result)) {
|
||||||
|
$data[$field] = mb_substr($data[$field], 0, $result[1]);
|
||||||
|
}
|
||||||
$fields[$field] = $data[$field];
|
$fields[$field] = $data[$field];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ use Friendica\Core\Cache\Duration;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
|
use Friendica\Database\DBStructure;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Network\Probe;
|
use Friendica\Network\Probe;
|
||||||
use Friendica\Protocol\ActivityNamespace;
|
use Friendica\Protocol\ActivityNamespace;
|
||||||
|
@ -349,6 +350,9 @@ class APContact
|
||||||
DBA::delete('apcontact', ['url' => $url]);
|
DBA::delete('apcontact', ['url' => $url]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Limit the length on incoming fields
|
||||||
|
$apcontact = DBStructure::getFieldsForTable('apcontact', $apcontact);
|
||||||
|
|
||||||
if (DBA::exists('apcontact', ['url' => $apcontact['url']])) {
|
if (DBA::exists('apcontact', ['url' => $apcontact['url']])) {
|
||||||
DBA::update('apcontact', $apcontact, ['url' => $apcontact['url']]);
|
DBA::update('apcontact', $apcontact, ['url' => $apcontact['url']]);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue