From 2a5682d98b2d06642333eef288f4d82ecda4ca9a Mon Sep 17 00:00:00 2001 From: Daniel Lehman Date: Tue, 23 Nov 2021 07:42:22 -0800 Subject: [PATCH] kernelbase: Handle UNC path in UrlApplySchemeW. Fixes loading XML from a UNC path. Signed-off-by: Daniel Lehman Signed-off-by: Alexandre Julliard --- dlls/kernelbase/path.c | 2 +- dlls/shlwapi/tests/url.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c index a9105341fad..b4b31410a3a 100644 --- a/dlls/kernelbase/path.c +++ b/dlls/kernelbase/path.c @@ -4020,7 +4020,7 @@ HRESULT WINAPI UrlApplySchemeW(const WCHAR *url, WCHAR *out, DWORD *length, DWOR if (flags & URL_APPLY_GUESSFILE) { - if (*length > 1 && ':' == url[1]) + if ((*length > 1 && ':' == url[1]) || PathIsUNCW(url)) { res1 = *length; hr = url_create_from_path(url, out, &res1); diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index 9e04c6d7b6f..0cc14dc65bf 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -97,6 +97,11 @@ static const TEST_URL_APPLY TEST_APPLY[] = { {"u:\\windows", URL_APPLY_DEFAULT, S_OK, 17, "http://u:\\windows"}, {"file:///c:/windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, {"aa:\\windows", URL_APPLY_GUESSFILE , S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"\\\\server\\share", URL_APPLY_DEFAULT, S_OK, 21, "http://\\\\server\\share"}, + {"\\\\server\\share", URL_APPLY_GUESSFILE, S_OK, 19, "file://server/share"}, + {"\\\\server\\share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"file://server/share", URL_APPLY_GUESSFILE, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, + {"file://server/share", URL_APPLY_GUESSSCHEME, S_FALSE, TEST_APPLY_MAX_LENGTH, untouchedA}, }; /* ################ */