From 1bbc4f1721b28865c9f475ae2672edf6360b9ba1 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Sat, 30 Jan 2010 20:55:01 +0000 Subject: [PATCH] - fix write access check when write mode only is requested (not RW) --- TSRM/tsrm_win32.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/TSRM/tsrm_win32.c b/TSRM/tsrm_win32.c index 4058636f0e..f4727c82de 100644 --- a/TSRM/tsrm_win32.c +++ b/TSRM/tsrm_win32.c @@ -303,7 +303,7 @@ TSRM_API int tsrm_win32_access(const char *pathname, int mode) fAccess = bucket->is_writable; goto Finished; } - desired_access = FILE_GENERIC_READ | FILE_GENERIC_WRITE; + desired_access = FILE_GENERIC_WRITE; } else if(mode <= 4) { if(bucket != NULL && bucket->is_rvalid) { fAccess = bucket->is_readable; @@ -348,6 +348,11 @@ TSRM_API int tsrm_win32_access(const char *pathname, int mode) else if(desired_access == FILE_GENERIC_WRITE) { bucket->is_wvalid = 1; bucket->is_writable = fAccess; + } else if (desired_access == FILE_GENERIC_READ | FILE_GENERIC_WRITE) { + bucket->is_rvalid = 1; + bucket->is_readable = fAccess; + bucket->is_wvalid = 1; + bucket->is_writable = fAccess; } } -- 2.40.0