]> cat aescling's git repositories - mastodon.git/commitdiff
Fix confusing error when webfinger request returns empty document (#16986)
authorClaire <claire.github-309c@sitedethib.com>
Sun, 14 Nov 2021 20:55:40 +0000 (21:55 +0100)
committerGitHub <noreply@github.com>
Sun, 14 Nov 2021 20:55:40 +0000 (21:55 +0100)
For some reason, some misconfigured servers return an empty document when
queried over webfinger. Since an empty document does not lead to a parse
error, the error is not caught properly and triggers uncaught exceptions
later on.

This PR fixes that by immediately erroring out with `Webfinger::Error` on
getting an empty response.

app/lib/webfinger.rb

index e0e022cea0dd9235c350f465b26c687c5a7cf5b4..1ffb5b4bf37ceff4f9110e6d675618d26b4aea55 100644 (file)
@@ -46,7 +46,9 @@ class Webfinger
   def body_from_webfinger(url = standard_url, use_fallback = true)
     webfinger_request(url).perform do |res|
       if res.code == 200
-        res.body_with_limit
+        body = res.body_with_limit
+        raise Webfinger::Error, "Request for #{@uri} returned empty response" if body.empty?
+        body
       elsif res.code == 404 && use_fallback
         body_from_host_meta
       elsif res.code == 410