diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-11-14 21:55:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-14 21:55:40 +0100 |
commit | 3517867b7656ff506a04e394fc8c1a855b7d504a (patch) | |
tree | 60a068a415e4b6c12fb17208ebc2f46c0ea05994 /app/lib | |
parent | 4b616c4f0a2158883034cd756391bd70265b787d (diff) |
Fix confusing error when webfinger request returns empty document (#16986)
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.
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/webfinger.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb index e0e022cea..1ffb5b4bf 100644 --- a/app/lib/webfinger.rb +++ b/app/lib/webfinger.rb @@ -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 |