Merge pull request #9590 from MrPetovan/bug/fatal-errors

Avoid unmarking for archival an empty contact in Protocol\ActivityPub\Receiver
This commit is contained in:
Michael Vogel 2020-11-25 00:42:30 +01:00 committed by GitHub
commit 32f70abf9a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -99,13 +99,15 @@ class Receiver
$actor = JsonLD::fetchElement($ldactivity, 'as:actor', '@id');
$apcontact = APContact::getByURL($actor);
if (!empty($apcontact) && ($apcontact['type'] == 'Application') && ($apcontact['nick'] == 'relay')) {
if (empty($apcontact)) {
Logger::notice('Unable to retrieve AP contact for actor', ['actor' => $actor]);
} elseif ($apcontact['type'] == 'Application' && $apcontact['nick'] == 'relay') {
self::processRelayPost($ldactivity, $actor);
return;
} else {
APContact::unmarkForArchival($apcontact);
}
APContact::unMarkForArchival($apcontact);
$http_signer = HTTPSignature::getSigner($body, $header);
if (empty($http_signer)) {
Logger::warning('Invalid HTTP signature, message will be discarded.');
@ -235,7 +237,7 @@ class Receiver
$profile = APContact::getByURL($object_id);
if (!empty($profile['type'])) {
APContact::unMarkForArchival($profile);
APContact::unmarkForArchival($profile);
return 'as:' . $profile['type'];
}