From 9b07ac14a00a27a7ba422856ac93c14a059e24f6 Mon Sep 17 00:00:00 2001 From: GabuTheDev <107962621+GabuTheDev@users.noreply.github.com> Date: Sat, 1 Feb 2025 14:52:39 +0200 Subject: [PATCH] feat: Sanitize paths in beatmap states. --- packages/tosu/src/states/beatmap.ts | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/packages/tosu/src/states/beatmap.ts b/packages/tosu/src/states/beatmap.ts index 8778c3d6..a053871e 100644 --- a/packages/tosu/src/states/beatmap.ts +++ b/packages/tosu/src/states/beatmap.ts @@ -3,12 +3,11 @@ import { ClientType, config, wLogger } from '@tosu/common'; import fs from 'fs'; import { Beatmap as ParsedBeatmap, TimingPoint } from 'osu-classes'; import { BeatmapDecoder } from 'osu-parsers'; -import path from 'path'; import { BeatmapStrains } from '@/api/types/v1'; import { AbstractInstance } from '@/instances'; import { AbstractState } from '@/states'; -import { fixDecimals } from '@/utils/converters'; +import { cleanPath, fixDecimals } from '@/utils/converters'; import { removeDebuffMods } from '@/utils/osuMods'; import { CalculateMods, ModsLazer } from '@/utils/osuMods.types'; @@ -316,9 +315,9 @@ export class BeatmapPP extends AbstractState { `beatmapPP updateMapMetadata`, `Skip osu! music theme file`, { - SongsFolder: global.songsFolder, - Folder: menu.folder, - Path: menu.filename + SongsFolder: cleanPath(global.songsFolder), + Folder: cleanPath(menu.folder), + Path: cleanPath(menu.filename) } ); return; @@ -331,18 +330,18 @@ export class BeatmapPP extends AbstractState { `beatmapPP updateMapMetadata`, `Skip new map creation`, { - SongsFolder: global.songsFolder, - Folder: menu.folder, - Path: menu.filename + SongsFolder: cleanPath(global.songsFolder), + Folder: cleanPath(menu.folder), + Path: cleanPath(menu.filename) } ); return; } - const mapPath = path.join( - global.songsFolder.trim(), - menu.folder.trim(), - menu.filename.trim() + const mapPath = cleanPath( + global.songsFolder, + menu.folder, + menu.filename ); try {