diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-12-07 00:15:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-07 00:15:24 +0100 |
commit | c8849d6ceecfdb9c18284fcc57a7e29019b4cd05 (patch) | |
tree | 13d33d7d66d6e996f9138ee733dba0e367f52f9a /app/services/activitypub/process_status_update_service.rb | |
parent | 98a9347dd735f1d7040175d243b8af8ac3a4ebca (diff) |
Fix unbounded recursion in account discovery (#22025)
* Fix trying to fetch posts from other users when fetching featured posts * Rate-limit discovery of new subdomains * Put a limit on recursively discovering new accounts
Diffstat (limited to 'app/services/activitypub/process_status_update_service.rb')
-rw-r--r-- | app/services/activitypub/process_status_update_service.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index a0605b1a3..fad19f87f 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -5,7 +5,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService include Redisable include Lockable - def call(status, json) + def call(status, json, request_id: nil) raise ArgumentError, 'Status has unsaved changes' if status.changed? @json = json @@ -15,6 +15,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService @account = status.account @media_attachments_changed = false @poll_changed = false + @request_id = request_id # Only native types can be updated at the moment return @status if !expected_type? || already_updated_more_recently? @@ -191,7 +192,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService next if href.blank? account = ActivityPub::TagManager.instance.uri_to_resource(href, Account) - account ||= ActivityPub::FetchRemoteAccountService.new.call(href) + account ||= ActivityPub::FetchRemoteAccountService.new.call(href, request_id: @request_id) next if account.nil? |