Ticket UUID: | 845778 | |||
Title: | Infinite recursion on [cd] | |||
Type: | Bug | Version: | obsolete: 8.4.5 | |
Submitter: | beric | Created on: | 2003-11-20 13:19:52 | |
Subsystem: | 37. File System | Assigned To: | vincentdarley | |
Priority: | 9 Immediate | Severity: | ||
Status: | Closed | Last Modified: | 2004-05-05 05:20:13 | |
Resolution: | Fixed | Closed By: | vincentdarley | |
Closed on: | 2003-11-20 19:11:40 | |||
Description: |
Under Windows 2000, with tclsh8.5 snapshot 20031119: cd g: cd c: crash with an infinite recursion. Here is the stack: Tcl_FSGetPathType(Tcl_Obj * 0x00912458) line 242 + 13 bytes Tcl_FSGetNormalizedPath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00912458) line 1219 + 9 bytes TclFSEnsureEpochOk(Tcl_Obj * 0x00912458, Tcl_Filesystem * * 0x0003321c) line 1444 + 11 bytes Tcl_FSGetFileSystemForPath(Tcl_Obj * 0x00912458) line 3718 + 13 bytes Tcl_FSGetCwd(Tcl_Interp * 0x00000000) line 2349 + 12 bytes Tcl_FSGetNormalizedPath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00912458) line 1244 + 9 bytes TclFSEnsureEpochOk(Tcl_Obj * 0x00912458, Tcl_Filesystem * * 0x000332f0) line 1444 + 11 bytes Tcl_FSGetFileSystemForPath(Tcl_Obj * 0x00912458) line 3718 + 13 bytes Tcl_FSGetCwd(Tcl_Interp * 0x00000000) line 2349 + 12 bytes Tcl_FSGetNormalizedPath(Tcl_Interp * 0x00000000, Tcl_Obj * 0x00912458) line 1244 + 9 bytes TclFSEnsureEpochOk(Tcl_Obj * 0x00912458, Tcl_Filesystem * * 0x000333c4) line 1444 + 11 bytes Tcl_FSGetFileSystemForPath(Tcl_Obj * 0x00912458) line 3718 + 13 bytes Tcl_FSGetCwd(Tcl_Interp * 0x00000000) line 2349 + 12 bytes ... | |||
User Comments: |
hobbs added on 2004-05-05 05:20:13:
Logged In: YES user_id=72656 It turns out that another problem was related to this that I have added a way-hacky work-around in 8.4 for. The simple script: set env(HOME) c: cd pwd would crash due to infinite recursion. This is not an issue in 8.5 with TCL_FILESYSTEM_VERSION_2, but is in 8.4 (although ugly work-around exists in core post-2004-05-04). vincentdarley added on 2003-11-21 02:11:40: Logged In: YES user_id=32170 Fixed in 8.4 branch too. hobbs added on 2003-11-21 01:52:49: Logged In: YES user_id=72656 please apply patch to core-8-4-branch as well. vincentdarley added on 2003-11-21 01:44:04: File Added - 68116: cdrecursefix.patch vincentdarley added on 2003-11-21 01:44:03: Logged In: YES user_id=32170 I've fixed this in 8.5a0. I'm reassigning to Jeff to fix in 8.4.5 if he deems appropriate (my strong recommendation is 'yes'). I've also compared behaviour between Tcl 8.3 and 8.4/8.5 in this area and the handling of volume relative paths is now the same as 8.3 (except normalized where appropriate). I'm attaching the patch that was used to fix the bug in 8.5a0. nobody added on 2003-11-20 23:06:54: Logged In: NO This bug is most likely caused by the relatively recent normalization of volume-relative paths in Tcl. I'll look into fixing it. beric added on 2003-11-20 22:28:20: Logged In: YES user_id=493507 G is a mounted samba volume, but this does not work with my cd-rom drive too. The wish console crash at the first [cd g:], while tclsh crash at the second [cd]. dkf added on 2003-11-20 21:41:27: Logged In: YES user_id=79902 Can't even begin to reproduce here as I don't have a G drive. :) Care to tell us a bit more about your system configuration? |
Attachments:
- cdrecursefix.patch [download] added by vincentdarley on 2003-11-21 01:44:04. [details]