Sanitize negative status count on APContact
Similar to PR #10499, Mastodon apparently has some counting flaws and can present a negative status count for a user, causing Friendica to fail (at least under PHP 8) with: [20-Jul-2021 16:35:18 UTC] PHP Fatal error: Uncaught PDOException: SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'statuses_count' at row 1 in /home/friendicadev/friendica/src/Database/Database.php:560 Stack trace: thrown in /home/friendicadev/friendica/src/Database/Database.php on line 560 This change prevents values lower than 0 from being assigned to statuses_count.
This commit is contained in:
parent
b04471b9f0
commit
cf32a4b7cc
1 changed files with 5 additions and 0 deletions
|
@ -330,6 +330,11 @@ class APContact
|
||||||
$outbox = ActivityPub::fetchContent($apcontact['outbox']);
|
$outbox = ActivityPub::fetchContent($apcontact['outbox']);
|
||||||
}
|
}
|
||||||
if (!empty($outbox['totalItems'])) {
|
if (!empty($outbox['totalItems'])) {
|
||||||
|
// Mastodon seriously allows for this condition?
|
||||||
|
// Jul 20 2021 - See https://chaos.social/@m11 for a negative posts count
|
||||||
|
if ($outbox['totalItems'] < 0) {
|
||||||
|
$outbox['totalItems'] = 0;
|
||||||
|
}
|
||||||
$apcontact['statuses_count'] = $outbox['totalItems'];
|
$apcontact['statuses_count'] = $outbox['totalItems'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue