From 4f6f47f71445caceb6fd208f5bb794690d08316f Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Mon, 14 Aug 2017 20:58:02 +0000
Subject: [PATCH] Now the bugfix really should work

---
 include/Contact.php | 9 ++++++---
 include/dba.php     | 4 ++++
 mod/hovercard.php   | 1 -
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/include/Contact.php b/include/Contact.php
index c7b512cea1..f69454e39e 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -213,19 +213,22 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) {
 	$r = dba::inArray($s);
 
 	// Fetch the data from the contact table with "uid=0" (which is filled automatically)
-	if (!dbm::is_result($r))
+	if (!dbm::is_result($r)) {
 		$s = dba::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
 			`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`
 			FROM `contact` WHERE `nurl` = ? AND `uid` = 0",
 				normalise_link($url));
-	$r = dba::inArray($s);
+		$r = dba::inArray($s);
+	}
 
 	// Fetch the data from the gcontact table
-	if (!dbm::is_result($r))
+	if (!dbm::is_result($r)) {
 		$s = dba::p("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
 			`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`
 			FROM `gcontact` WHERE `nurl` = ?",
 				normalise_link($url));
+		$r = dba::inArray($s);
+	}
 
 	if (dbm::is_result($r)) {
 		// If there is more than one entry we filter out the connector networks
diff --git a/include/dba.php b/include/dba.php
index a7689bc0f4..6bb18a0b74 100644
--- a/include/dba.php
+++ b/include/dba.php
@@ -1338,6 +1338,10 @@ class dba {
 	 * @return array Data array
 	 */
 	static public function inArray($stmt, $do_close = true) {
+		if (is_bool($stmt)) {
+			return $stmt;
+		}
+
 		$data = array();
 		while ($row = self::fetch($stmt)) {
 			$data[] = $row;
diff --git a/mod/hovercard.php b/mod/hovercard.php
index 83306aa116..26c6062519 100644
--- a/mod/hovercard.php
+++ b/mod/hovercard.php
@@ -52,7 +52,6 @@ function hovercard_content() {
 		// Search for contact data
 		$contact = get_contact_details_by_url($nurl);
 	}
-
 	if(!is_array($contact))
 		return;
 
-- 
2.39.5