aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2021-08-27 16:50:30 +0100
committerGitHub <noreply@github.com>2021-08-27 16:50:30 +0100
commit51b119107c972007f5a1bc626758a6229ece14db (patch)
tree5a19d194f2ab3c664195bf50d0c7286a705aae85
parent2dd5fd1fd676c570a13c2ed062fa47a026ca826f (diff)
Don't return nonsense canonical room aliases in the public rooms responses (#1992)
-rw-r--r--federationapi/routing/publicrooms.go4
-rw-r--r--roomserver/api/wrapper.go4
2 files changed, 6 insertions, 2 deletions
diff --git a/federationapi/routing/publicrooms.go b/federationapi/routing/publicrooms.go
index ddd92c5c..5b9be880 100644
--- a/federationapi/routing/publicrooms.go
+++ b/federationapi/routing/publicrooms.go
@@ -156,7 +156,9 @@ func fillInRooms(ctx context.Context, roomIDs []string, rsAPI roomserverAPI.Room
case topicTuple:
pub.Topic = contentVal
case canonicalTuple:
- pub.CanonicalAlias = contentVal
+ if _, _, err := gomatrixserverlib.SplitID('#', contentVal); err == nil {
+ pub.CanonicalAlias = contentVal
+ }
case visibilityTuple:
pub.WorldReadable = contentVal == "world_readable"
// need both of these to determine whether guests can join
diff --git a/roomserver/api/wrapper.go b/roomserver/api/wrapper.go
index 2ebe2f64..de66df80 100644
--- a/roomserver/api/wrapper.go
+++ b/roomserver/api/wrapper.go
@@ -215,7 +215,9 @@ func PopulatePublicRooms(ctx context.Context, roomIDs []string, rsAPI Roomserver
case topicTuple:
pub.Topic = contentVal
case canonicalTuple:
- pub.CanonicalAlias = contentVal
+ if _, _, err := gomatrixserverlib.SplitID('#', contentVal); err == nil {
+ pub.CanonicalAlias = contentVal
+ }
case visibilityTuple:
pub.WorldReadable = contentVal == "world_readable"
// need both of these to determine whether guests can join