diff options
author | metamuffin <metamuffin@disroot.org> | 2025-02-16 15:15:20 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-02-16 15:15:20 +0100 |
commit | 079fbf62ad125cfe69853c0bf543db7225d41020 (patch) | |
tree | 1445daa006936ad83edef1b217f05a9dc43e33bc /server/src | |
parent | abe663807337faa717f9485b047c8f0e808f2a09 (diff) | |
download | jellything-079fbf62ad125cfe69853c0bf543db7225d41020.tar jellything-079fbf62ad125cfe69853c0bf543db7225d41020.tar.bz2 jellything-079fbf62ad125cfe69853c0bf543db7225d41020.tar.zst |
dont leak media paths, fix jsp profile selection and add small hack to accept relative timestamps from transcoding
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/routes/ui/assets.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/server/src/routes/ui/assets.rs b/server/src/routes/ui/assets.rs index a925e31..cfaa68e 100644 --- a/server/src/routes/ui/assets.rs +++ b/server/src/routes/ui/assets.rs @@ -4,7 +4,7 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use crate::routes::ui::{account::session::Session, error::MyResult, CacheControlFile}; -use anyhow::{anyhow, Context}; +use anyhow::{anyhow, bail, Context}; use base64::Engine; use jellybase::{ assetfed::AssetInner, cache::async_cache_file, database::Database, federation::Federation, CONF, @@ -56,7 +56,7 @@ pub async fn resolve_asset(asset: AssetInner) -> anyhow::Result<PathBuf> { AssetInner::Cache(c) => Ok(c.abs()), AssetInner::Assets(c) => Ok(CONF.asset_path.join(c)), AssetInner::Media(c) => Ok(CONF.media_path.join(c)), - _ => unreachable!(), + _ => bail!("wrong asset type"), } } @@ -168,7 +168,10 @@ pub async fn r_node_thumbnail( let t = (t / step).floor() * step; let asset = match thumb_track_source { - TrackSource::Local(LocalTrack { path, .. }) => { + TrackSource::Local(a) => { + let AssetInner::LocalTrack(LocalTrack { path, .. }) = AssetInner::deser(&a.0)? else { + return Err(anyhow!("track set to wrong asset type").into()); + }; // the track selected might be different from thumb_track jellytranscoder::thumbnail::create_thumbnail(&CONF.media_path.join(path), t).await? } |