From f5cc1de36f7d6f3ce7d689a9b6675a930d81337c Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Fri, 25 Feb 2022 14:12:43 +0100 Subject: [PATCH] fix(fs): missing path normalization (#14414) --- lib/manager/nuget/util.ts | 4 +++- lib/util/fs/index.ts | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/manager/nuget/util.ts b/lib/manager/nuget/util.ts index 9174813e7c..edb44986a0 100644 --- a/lib/manager/nuget/util.ts +++ b/lib/manager/nuget/util.ts @@ -7,7 +7,9 @@ import { findUpLocal, readLocalFile } from '../../util/fs'; import { regEx } from '../../util/regex'; import type { Registry } from './types'; -async function readFileAsXmlDocument(file: string): Promise<XmlDocument> { +async function readFileAsXmlDocument( + file: string +): Promise<XmlDocument | undefined> { try { return new XmlDocument(await readLocalFile(file, 'utf8')); } catch (err) { diff --git a/lib/util/fs/index.ts b/lib/util/fs/index.ts index 2b4ff40098..c06ac8a913 100644 --- a/lib/util/fs/index.ts +++ b/lib/util/fs/index.ts @@ -183,11 +183,12 @@ export async function findUpLocal( if (!is.nonEmptyString(res) || !is.nonEmptyString(localDir)) { return null; } + const safePath = upath.normalizeSafe(res); // Return relative path if file is inside of local dir - if (res.startsWith(localDir)) { - let relativePath = res.replace(localDir, ''); + if (safePath.startsWith(localDir)) { + let relativePath = safePath.replace(localDir, ''); if (relativePath.startsWith('/')) { - relativePath = relativePath.substr(1); + relativePath = relativePath.substring(1); } return relativePath; } -- GitLab