Fix panics in search_by_apub_id() (fixes #2371) (#2373)

follow_accepted_websocket
Nutomic 2022-07-27 21:03:44 +00:00 committed by GitHub
parent eee8f467b5
commit b9f1fc0518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View File

@ -32,9 +32,11 @@ pub async fn search_by_apub_id(
.await
}
Err(_) => {
let (kind, identifier) = query.split_at(1);
let mut chars = query.chars();
let kind = chars.next();
let identifier = chars.as_str();
match kind {
"@" => {
Some('@') => {
let id =
webfinger_resolve_actor::<ApubPerson>(identifier, context, request_counter).await?;
Ok(SearchableObjects::Person(
@ -43,7 +45,7 @@ pub async fn search_by_apub_id(
.await?,
))
}
"!" => {
Some('!') => {
let id =
webfinger_resolve_actor::<ApubCommunity>(identifier, context, request_counter).await?;
Ok(SearchableObjects::Community(

View File

@ -39,7 +39,7 @@ where
let (_, domain) = identifier
.splitn(2, '@')
.collect_tuple()
.expect("invalid query");
.ok_or_else(|| LemmyError::from_message("Invalid webfinger query, missing domain"))?;
let fetch_url = format!(
"{}://{}/.well-known/webfinger?resource=acct:{}",
protocol, domain, identifier