Skip to content

Commit 54e08a5

Browse files
Merge pull request #3308 from ClearlyClaire/glitch-soc/merge-4.5
Merge upstream changes up to 86cff1a into stable-4.5
2 parents 300d62f + 12ec21a commit 54e08a5

File tree

120 files changed

+1931
-811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+1931
-811
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [4.5.3] - 2025-12-08
6+
7+
### Security
8+
9+
- Fix inconsistent error handling leaking information on existence of private posts ([GHSA-gwhw-gcjx-72v8](https://github.com/mastodon/mastodon/security/advisories/GHSA-gwhw-gcjx-72v8))
10+
11+
### Fixed
12+
13+
- Fix “Delete and Redraft” on a non-quote being treated as a quote post in some cases (#37140 by @ClearlyClaire)
14+
- Fix YouTube embeds by sending referer (#37126 by @ChaosExAnima)
15+
- Fix streamed quoted polls not being hydrated correctly (#37118 by @ClearlyClaire)
16+
- Fix creation of duplicate conversations (#37108 by @oneiros)
17+
- Fix extraneous `noreferrer` in external links (#37107 by @ChaosExAnima)
18+
- Fix edge case error handling in some database migrations (#37079 by @ClearlyClaire)
19+
- Fix error handling when re-fetching already-known statuses (#37077 by @ClearlyClaire)
20+
- Fix post navigation in single-column mode when Advanced UI is enabled (#37044 by @diondiondion)
21+
- Fix `tootctl status remove` removing quoted posts and remote quotes of local posts (#37009 by @ClearlyClaire)
22+
- Fix known expensive S3 batch delete operation failing because of short timeouts (#37004 by @ClearlyClaire)
23+
- Fix compose autosuggest always lowercasing input token (#36995 by @ClearlyClaire)
24+
525
## [4.5.2] - 2025-11-20
626

727
### Changed

app/controllers/activitypub/likes_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def pundit_user
2222
def set_status
2323
@status = @account.statuses.find(params[:status_id])
2424
authorize @status, :show?
25-
rescue Mastodon::NotPermittedError
25+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2626
not_found
2727
end
2828

app/controllers/activitypub/quote_authorizations_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def set_quote_authorization
2424
return not_found unless @quote.status.present? && @quote.quoted_status.present?
2525

2626
authorize @quote.quoted_status, :show?
27-
rescue Mastodon::NotPermittedError
27+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2828
not_found
2929
end
3030
end

app/controllers/activitypub/replies_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def pundit_user
2525
def set_status
2626
@status = @account.statuses.find(params[:status_id])
2727
authorize @status, :show?
28-
rescue Mastodon::NotPermittedError
28+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2929
not_found
3030
end
3131

app/controllers/activitypub/shares_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def pundit_user
2222
def set_status
2323
@status = @account.statuses.find(params[:status_id])
2424
authorize @status, :show?
25-
rescue Mastodon::NotPermittedError
25+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2626
not_found
2727
end
2828

app/controllers/api/v1/polls/votes_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def create
1717
def set_poll
1818
@poll = Poll.find(params[:poll_id])
1919
authorize @poll.status, :show?
20-
rescue Mastodon::NotPermittedError
20+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2121
not_found
2222
end
2323

app/controllers/api/v1/polls_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def show
1717
def set_poll
1818
@poll = Poll.find(params[:id])
1919
authorize @poll.status, :show?
20-
rescue Mastodon::NotPermittedError
20+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2121
not_found
2222
end
2323

app/controllers/api/v1/statuses/base_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Api::V1::Statuses::BaseController < Api::BaseController
1010
def set_status
1111
@status = Status.find(params[:status_id])
1212
authorize @status, :show?
13-
rescue Mastodon::NotPermittedError
13+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
1414
not_found
1515
end
1616
end

app/controllers/api/v1/statuses/bookmarks_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def destroy
2323
bookmark&.destroy!
2424

2525
render json: @status, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_account.id, bookmarks_map: { @status.id => false })
26-
rescue Mastodon::NotPermittedError
26+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2727
not_found
2828
end
2929
end

app/controllers/api/v1/statuses/favourites_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def destroy
2525

2626
relationships = StatusRelationshipsPresenter.new([@status], current_account.id, favourites_map: { @status.id => false }, attributes_map: { @status.id => { favourites_count: count } })
2727
render json: @status, serializer: REST::StatusSerializer, relationships: relationships
28-
rescue Mastodon::NotPermittedError
28+
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
2929
not_found
3030
end
3131
end

0 commit comments

Comments
 (0)