From 6f0092f8db8fb7fe8e4d020fda4dde81f5f3b2aa Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Tue, 17 Nov 2020 14:55:05 +0100 Subject: [PATCH] fix(nuget): normalize paths (#7745) --- lib/manager/nuget/extract.spec.ts | 3 +-- lib/manager/nuget/util.ts | 9 +++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/manager/nuget/extract.spec.ts b/lib/manager/nuget/extract.spec.ts index 40cbeb814a..65809afa0b 100644 --- a/lib/manager/nuget/extract.spec.ts +++ b/lib/manager/nuget/extract.spec.ts @@ -1,5 +1,4 @@ import { readFileSync } from 'fs'; -import path from 'path'; import * as upath from 'upath'; import { ExtractConfig } from '../common'; import { extractPackageFile } from './extract'; @@ -9,7 +8,7 @@ describe('lib/manager/nuget/extract', () => { let config: ExtractConfig; beforeEach(() => { config = { - localDir: path.resolve('lib/manager/nuget/__fixtures__'), + localDir: upath.resolve('lib/manager/nuget/__fixtures__'), }; }); it('returns empty for invalid csproj', async () => { diff --git a/lib/manager/nuget/util.ts b/lib/manager/nuget/util.ts index 7508d6e7db..566de7e710 100644 --- a/lib/manager/nuget/util.ts +++ b/lib/manager/nuget/util.ts @@ -25,12 +25,17 @@ export async function determineRegistries( ): Promise<Registry[] | undefined> { // Valid file names taken from https://github.com/NuGet/NuGet.Client/blob/f64621487c0b454eda4b98af853bf4a528bef72a/src/NuGet.Core/NuGet.Configuration/Settings/Settings.cs#L34 const nuGetConfigFileNames = ['nuget.config', 'NuGet.config', 'NuGet.Config']; + // normalize paths, otherwise startsWith can fail because of path delimitter mismatch + const baseDir = upath.normalizeSafe(localDir); const nuGetConfigPath = await findUp(nuGetConfigFileNames, { - cwd: upath.dirname(upath.join(localDir, packageFile)), + cwd: upath.dirname(upath.join(baseDir, packageFile)), type: 'file', }); - if (nuGetConfigPath?.startsWith(localDir) !== true) { + if ( + !nuGetConfigPath || + upath.normalizeSafe(nuGetConfigPath).startsWith(baseDir) !== true + ) { return undefined; } -- GitLab