From b0cef8827daf5e21e8c02ec871b34ad73459db01 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 12 Jul 2021 13:15:20 +0200 Subject: [PATCH 1/2] Check if dns_get_record returns non-false `dns_get_record` can return false which results in exceptions such as the ones shown in https://github.com/nextcloud/server/issues/27870. Signed-off-by: Lukas Reschke --- lib/private/Http/Client/DnsPinMiddleware.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Http/Client/DnsPinMiddleware.php b/lib/private/Http/Client/DnsPinMiddleware.php index 9e5cfc919f10d..6b5437fa66a8b 100644 --- a/lib/private/Http/Client/DnsPinMiddleware.php +++ b/lib/private/Http/Client/DnsPinMiddleware.php @@ -82,7 +82,7 @@ private function dnsResolve(string $target, int $recursionCount) : array { $dnsResponses = dns_get_record($target, $dnsType); $canHaveCnameRecord = true; - if (count($dnsResponses) > 0) { + if ($dnsResponses && count($dnsResponses) > 0) { foreach ($dnsResponses as $dnsResponse) { if (isset($dnsResponse['ip'])) { $targetIps[] = $dnsResponse['ip']; From 84d9b17dc7105d32b84e717966730fc00c4ed5be Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Mon, 12 Jul 2021 15:06:30 +0200 Subject: [PATCH 2/2] Check for !== false instead Signed-off-by: Lukas Reschke --- lib/private/Http/Client/DnsPinMiddleware.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Http/Client/DnsPinMiddleware.php b/lib/private/Http/Client/DnsPinMiddleware.php index 6b5437fa66a8b..ee0ea053dcfe6 100644 --- a/lib/private/Http/Client/DnsPinMiddleware.php +++ b/lib/private/Http/Client/DnsPinMiddleware.php @@ -82,7 +82,7 @@ private function dnsResolve(string $target, int $recursionCount) : array { $dnsResponses = dns_get_record($target, $dnsType); $canHaveCnameRecord = true; - if ($dnsResponses && count($dnsResponses) > 0) { + if ($dnsResponses !== false && count($dnsResponses) > 0) { foreach ($dnsResponses as $dnsResponse) { if (isset($dnsResponse['ip'])) { $targetIps[] = $dnsResponse['ip'];