Daniel Lehman : kernelbase: Handle UNC path in UrlApplySchemeW.

Alexandre Julliard julliard at winehq.org
Tue Nov 23 16:03:31 CST 2021


Module: wine
Branch: master
Commit: 2a5682d98b2d06642333eef288f4d82ecda4ca9a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=2a5682d98b2d06642333eef288f4d82ecda4ca9a

Author: Daniel Lehman <dlehman at esri.com>
Date:   Tue Nov 23 07:42:22 2021 -0800

kernelbase: Handle UNC path in UrlApplySchemeW.

Fixes loading XML from a UNC path.

Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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},
 };
 
 /* ################ */




More information about the wine-cvs mailing list