sal/osl/w32/file_dirvol.cxx |   51 --------------------------------------------
 1 file changed, 51 deletions(-)

New commits:
commit 753caf32360c25866b2c1cbe8c5f4d8c8733128f
Author:     Xisco Fauli <[email protected]>
AuthorDate: Thu Feb 19 16:28:41 2026 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Fri Feb 20 10:46:12 2026 +0100

    tdf#170297: Revert "tdf#150118 check file permissions on windows if have no 
readonly" (26.2 only)
    
    This reverts commit 1b5d039d8b5861b5ea21ef00ff521c6e2565105f.
    
    Change-Id: I5577b131f4a8328719e93ecb1b485aafb46a0ba5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199764
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sal/osl/w32/file_dirvol.cxx b/sal/osl/w32/file_dirvol.cxx
index d2a87fbaac21..ad92c6f05087 100644
--- a/sal/osl/w32/file_dirvol.cxx
+++ b/sal/osl/w32/file_dirvol.cxx
@@ -21,7 +21,6 @@
 
 #include <systools/win32/extended_max_path.hxx>
 #include <systools/win32/uwinapi.h>
-#include <aclapi.h>
 
 #include "file_url.hxx"
 #include "filetime.hxx"
@@ -1526,56 +1525,6 @@ oslFileError SAL_CALL osl_getFileStatus(
     // 
https://learn.microsoft.com/en-us/windows/desktop/FileIO/file-attribute-constants
     if (pStatus->uAttributes & FILE_ATTRIBUTE_DIRECTORY)
         pStatus->uAttributes &= ~sal_uInt64(FILE_ATTRIBUTE_READONLY);
-
-    // tdf#150118: if there is no Read Only attribute set, lets check if the 
user has write access on the file
-    if ( (pStatus->uAttributes & (FILE_ATTRIBUTE_READONLY | 
FILE_ATTRIBUTE_DIRECTORY)) == 0 )
-    {
-        HANDLE hProcessToken = nullptr;
-        OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE | TOKEN_QUERY, 
&hProcessToken);
-
-        HANDLE hImpersonationToken = nullptr;
-        DuplicateToken(hProcessToken, SecurityImpersonation, 
&hImpersonationToken);
-
-        PSECURITY_DESCRIPTOR pSD = nullptr;
-        // 
https://learn.microsoft.com/en-us/windows/win32/api/aclapi/nf-aclapi-getnamedsecurityinfow
-        DWORD aResult = GetNamedSecurityInfoW(
-            o3tl::toW(sFullPath.getStr()), SE_FILE_OBJECT,
-            OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | 
DACL_SECURITY_INFORMATION,
-            nullptr, nullptr, nullptr, nullptr, &pSD);
-
-        if (aResult == ERROR_SUCCESS)
-        {
-            GENERIC_MAPPING mapping
-                = { FILE_GENERIC_READ, FILE_GENERIC_WRITE, 
FILE_GENERIC_EXECUTE, FILE_ALL_ACCESS };
-            DWORD grantedAccess = 0;
-            BOOL accessStatus = TRUE;
-
-            // 
https://learn.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-accesscheck
-            BOOL bResult = AccessCheck(pSD, hImpersonationToken, 
FILE_GENERIC_WRITE, &mapping,
-                                       nullptr, nullptr, &grantedAccess, 
&accessStatus);
-
-            if (bResult)
-            {
-                if (!accessStatus)
-                {
-                    // User does NOT have write access: set Read Only attribute
-                    pStatus->uAttributes |= 
sal_uInt64(FILE_ATTRIBUTE_READONLY);
-                }
-            }
-            else
-            {
-                SAL_WARN("AccessCheck API failed with: ", 
oslTranslateFileError(GetLastError()));
-            }
-            LocalFree(pSD); // free memory
-        }
-        else
-        {
-            SAL_WARN("GetNamedSecurityInfoW API failed with: ", aResult);
-        }
-        CloseHandle(hImpersonationToken); // free memory
-        CloseHandle(hProcessToken); // free memory
-    }
-
     pStatus->uValidFields |= osl_FileStatus_Mask_Attributes;
 
     pStatus->uFileSize = 
static_cast<sal_uInt64>(pItemImpl->FindData.nFileSizeLow) + 
(static_cast<sal_uInt64>(pItemImpl->FindData.nFileSizeHigh) << 32);

Reply via email to