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