From: Michael Date: Tue, 11 Jun 2019 05:26:16 +0000 (+0000) Subject: Avoid fatal error when AP contact has no photo X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=76a420fbe95915d94ffba310be664fa05a4c49a9;p=friendica.git Avoid fatal error when AP contact has no photo --- diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 67c714f9af..c308da3889 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -152,7 +152,13 @@ class APContact extends BaseObject $apcontact['alias'] = JsonLD::fetchElement($compacted['as:url'], 'as:href', '@id'); } - if (empty($apcontact['url']) || empty($apcontact['inbox'])) { + // Quit if none of the basic values are set + if (empty($apcontact['url']) || empty($apcontact['inbox']) || empty($apcontact['type'])) { + return false; + } + + // Quit if this doesn't seem to be an account at all + if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) { return false; } @@ -228,11 +234,13 @@ class APContact extends BaseObject DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]); - $contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]); - while ($contact = DBA::fetch($contacts)) { - Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']); + if (!empty($apcontact['photo'])) { + $contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]); + while ($contact = DBA::fetch($contacts)) { + Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']); + } + DBA::close($contacts); } - DBA::close($contacts); // Update the gcontact table // These two fields don't exist in the gcontact table diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 8ad7f3145f..2d740e1378 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -413,7 +413,11 @@ class Photo extends BaseObject $photo_failure = false; $filename = basename($image_url); - $img_str = Network::fetchUrl($image_url, true); + if (!empty($image_url)) { + $img_str = Network::fetchUrl($image_url, true); + } else { + $img_str = ''; + } if ($quit_on_error && ($img_str == "")) { return false;