From 18c4be869fdeeb876053ba4a1a8014a254e96f9c Mon Sep 17 00:00:00 2001 From: Ben Botwin Date: Sun, 15 Feb 2026 11:24:40 -0500 Subject: [PATCH] added handling for other potential errors --- src/api/client/media.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/api/client/media.rs b/src/api/client/media.rs index 7ae22a27..f30a7966 100644 --- a/src/api/client/media.rs +++ b/src/api/client/media.rs @@ -183,12 +183,27 @@ pub(crate) async fn get_content_as_filename_route( media_id: &body.media_id, }; - let Ok(FileMeta { + let FileMeta { content, content_type, content_disposition, - }) = fetch_file(&services, &mxc, user, body.timeout_ms, None).await else { - return Err!(Request(NotFound("Media not found."))); + } = match fetch_file(&services, &mxc, user, body.timeout_ms, None).await { + Ok(meta) => meta, + Err(e) => { + match e { + conduwuit::Error::Io(e) => { + match e.kind() { + std::io::ErrorKind::PermissionDenied => + // to not leak that a file exists + return Err!(Request(NotFound("Media not found."))), + std::io::ErrorKind::NotFound => + return Err!(Request(NotFound("Media not found."))), + _ => return Err!(Request(Unknown("Unknown error when fetching file."))), + } + }, + _ => return Err!(Request(Unknown("Unknown error when fetching file."))), + } + } }; Ok(get_content_as_filename::v1::Response {