X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FProtocol%2FPortableContact.php;h=5345cb22fce2ae182c6f155ab93e518138c08790;hb=8a0c568fe103e2e7ef832a623bfb6be6c54e300a;hp=7900ff540bfda7672d76416a6acba139c6b8d676;hpb=b6e2c254fbad22c8c2da872768b14d7cd9b0b043;p=friendica.git diff --git a/src/Protocol/PortableContact.php b/src/Protocol/PortableContact.php index 7900ff540b..5345cb22fc 100644 --- a/src/Protocol/PortableContact.php +++ b/src/Protocol/PortableContact.php @@ -505,8 +505,15 @@ class PortableContact $last_updated = ""; foreach ($entries as $entry) { - $published = DateTimeFormat::utc($xpath->query('atom:published/text()', $entry)->item(0)->nodeValue); - $updated = DateTimeFormat::utc($xpath->query('atom:updated/text()' , $entry)->item(0)->nodeValue); + $published_item = $xpath->query('atom:published/text()', $entry)->item(0); + $updated_item = $xpath->query('atom:updated/text()' , $entry)->item(0); + $published = isset($published_item->nodeValue) ? DateTimeFormat::utc($published_item->nodeValue) : null; + $updated = isset($updated_item->nodeValue) ? DateTimeFormat::utc($updated_item->nodeValue) : null; + + if (!isset($published) || !isset($updated)) { + Logger::notice('Invalid entry for XPath.', ['entry' => $entry, 'profile' => $profile]); + continue; + } if ($last_updated < $published) { $last_updated = $published; @@ -658,7 +665,7 @@ class PortableContact $nodeinfo2_url = ''; foreach ($nodeinfo['links'] as $link) { - if (!is_array($link) || empty($link['rel'])) { + if (!is_array($link) || empty($link['rel']) || empty($link['href'])) { Logger::log('Invalid nodeinfo format for ' . $server_url, Logger::DEBUG); continue; }