additional character check on room alias

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-01-24 16:44:37 -05:00 committed by June
parent e272f0f34f
commit 8754f0e2a5

View file

@ -109,6 +109,8 @@ pub async fn create_room_route(
body.room_alias_name
.as_ref()
.map_or(Ok(None), |localpart| {
// Basic checks on the room alias validity
if localpart.contains(':') {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
@ -129,7 +131,13 @@ pub async fn create_room_route(
ErrorKind::InvalidParam,
"Room alias is excessively long, clients may not be able to handle this. Please shorten it.",
));
} else if localpart.contains('"') {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Room alias contained `\"` which is not allowed.",
));
}
let alias = RoomAliasId::parse(format!(
"#{}:{}",
localpart,