From 6d2e3bdac27ade56031d930c85e906c0d35877bc Mon Sep 17 00:00:00 2001 From: Isamu Mogi Date: Tue, 4 Jun 2013 13:10:44 +0000 Subject: fdo#41226 Add error handling of recursed GetCaseCorrectPathNameEx() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GetCaseCorrectPathNameEx() with bCheckExistence = true doesn't support windows share path but occasionally it doesn't return failure and returns broken result. For example, when we call with "\\USER-PC\Users\foo" then it converts the path to "\Users\foo". And when "\Users\foo" exists, it returns "\Users\foo". It is caused by missing error handling of searching for file "\\USER-PC". Also similar bug possibly occurs even for local file path. This commit fixes these bugs. Change-Id: Idf1dd1282510d8a6810ed239a83051bb0f8e2f87 Reviewed-on: https://gerrit.libreoffice.org/4151 Reviewed-by: Luboš Luňák Tested-by: Luboš Luňák --- sal/osl/w32/file_url.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sal') diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx index fb1fa459a61f..e9be89598768 100644 --- a/sal/osl/w32/file_url.cxx +++ b/sal/osl/w32/file_url.cxx @@ -486,7 +486,8 @@ static DWORD GetCaseCorrectPathNameEx( else bSkipThis = FALSE; - GetCaseCorrectPathNameEx( lpszPath, cchBuffer, nSkipLevels, bCheckExistence ); + if ( !GetCaseCorrectPathNameEx( lpszPath, cchBuffer, nSkipLevels, bCheckExistence ) ) + return 0; PathAddBackslash( lpszPath, cchBuffer ); -- cgit v1.2.3