Ticket UUID: | 1344540 | |||
Title: | file writable lies for certain XP directories | |||
Type: | Patch | Version: | None | |
Submitter: | jfg118 | Created on: | 2005-11-01 05:21:57 | |
Subsystem: | 37. File System | Assigned To: | vincentdarley | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2006-03-20 02:37:48 | |
Resolution: | Fixed | Closed By: | vincentdarley | |
Closed on: | 2006-03-19 19:37:48 | |||
Description: |
[Duplicate BUG 1193497 -- to allow file attachment] file writable lies for certain XP directories Windows XP SP2 french, Tcl/Tk cvs HEAD file writable "C:/Documents and Settings/<account>/Mes Documents/mydir" returns 1 if mydir does exist, or 0 if not. This is correct. file writable "C:/Documents and Settings/" returns also 1, which is correct. But: file writable "C:/Documents and Settings/<account>/Mes Documents" returns 0 but it should be 1 <account> is my account name (with administrator rights), this directory of course exists and I'm allowed to write files in it. === Attached files implement a solution based on the original bug. The source is based on the Tcl 8.4.11 source and encompasses the changes by dkf. The patch should still be easily applied on the CVS HEAD. | |||
User Comments: |
jfg118 added on 2006-03-14 06:58:07:
File Added - 170804: generic-testTcl.c.diff-u jfg118 added on 2006-03-14 06:57:39: Logged In: YES user_id=1266631 Attached patch based on Tcl 8.4.12. The patch modified the testchmod command to apply an ACL change on windows to make the directory non writable. Detailed testcase analysis on duplicate bug 1193497. jfg118 added on 2006-03-11 05:14:00: File Added - 170510: win-tclWinFile.c.diff-u jfg118 added on 2006-03-11 05:13:13: File Deleted - 170266: jfg118 added on 2006-03-11 05:13:12: Logged In: YES user_id=1266631 Updated patch to only ignore the read-only flag if it is a directory, as the directory is the only special case. fvogelnew1 added on 2006-03-09 19:36:31: Logged In: YES user_id=1245417 Many many thanks to all contributors for this effort. I really appreciate it. I understand that the next 8.5 release will then include the patch. Is there any chance to have it also in the upcoming 8.4.13? I would switch to 8.4.13 rather than 8.5 which is still alpha. Thanks again, Francois vincentdarley added on 2006-03-09 18:30:43: Logged In: YES user_id=32170 Applied to cvs HEAD. jfg118 added on 2006-03-09 07:22:53: File Deleted - 154636: jfg118 added on 2006-03-09 07:22:52: File Deleted - 154638: File Added - 170266: win-tclWinFile.c.diff-u jfg118 added on 2006-03-09 07:22:51: Logged In: YES user_id=1266631 Attached is a new patch which dynamically loads the NT specific Windows API functions. If the Windows API functions can not be found, the fallback is to use the read only flag as the function previously was implemented. The attached patch is now a single file which has been generated against the Tcl 8.4.12 source code. The change should be easily applied on CVS HEAD. jfg118 added on 2006-03-08 05:25:00: Logged In: YES user_id=1266631 How does Tcl handle other similar situations? It seems that it would be straight forward to use the old method when running on non NT systems. From what I can see from MSDN the functions are available on all Windows NT versions newer than 3.51. This would mean it would only be a problem on Win95/98/Me. One could probably dynamically load the DLL entry points, and if it fails fall back to the old implementation. patthoyts added on 2006-03-08 04:59:49: Logged In: YES user_id=202636 As it stands this patch cannot be applied as it requires Win32 API features that are only available on NT systems. fvogelnew1 added on 2006-03-06 02:56:02: Logged In: YES user_id=1245417 Hi all, It's now ten months since I opened the original bug (1193497), and 4 months since a patch has been kindly derived, and I really thank you for that. Everything seems to be ready for inclusion in the next Tcl release, but nothing happens. Why? What can I do to speed up the process? Can I be of any help, or should I just wait for some TCT member to review the patch and apply it to the codebase? I'm more than willing to help, but can't find any advice on how to do it. My knowledge of Tcl internals or ACL list is rather limited, but I'm ready to try whatever task is required. Thanks, Francois fvogelnew1 added on 2005-12-02 03:17:46: Logged In: YES user_id=1245417 Hi, Could you please apply your patch at least to the 8.4.11 branch so that it will be included in the upcoming 8.4.12? I really need this feature. Thanks a lot, Francois dkf added on 2005-11-01 18:34:22: data_type - 310894 jfg118 added on 2005-11-01 12:24:22: File Added - 154638: win-tclWinInt.h.diff-u jfg118 added on 2005-11-01 12:23:07: File Added - 154637: win-tclWin32Dll.c.diff-u jfg118 added on 2005-11-01 12:21:58: File Added - 154636: win-tclWinFile.c.diff-u |