Ticket UUID: | 940281 | |||
Title: | Tcl_FSJoinPath not as documented | |||
Type: | Bug | Version: | obsolete: 8.5a2 | |
Submitter: | dgp | Created on: | 2004-04-22 20:04:58 | |
Subsystem: | 37. File System | Assigned To: | vincentdarley | |
Priority: | 5 Medium | Severity: | ||
Status: | Closed | Last Modified: | 2004-04-23 18:56:01 | |
Resolution: | Fixed | Closed By: | vincentdarley | |
Closed on: | 2004-04-23 11:56:01 | |||
Description: |
Docs claim that Tcl_FSJoinPath returns a (Tcl_Obj *) -- the joined path. However, it sometimes returns NULL instead. Notably, it returns NULL if an invalid list is passed in as the listObj argument. That makes some sense, though a Tcl_Panic() might be just a suitable. The caller is simply broken. Either way that should be documented. The more serious problem is when listObj is a valid list, but a value of 0 is passed as the elements argument. Then NULL is returned instead of an empty string path. This breaks simple uses like: elements = Tcl_FSSplitPath(path, &count); Tcl_IncrRefCount(elements); parent = Tcl_FSJoinPath(elements, count -1); Tcl_IncrRefCount(parent); /* possible CRASH! */ Tcl_ListObjIndex(NULL, elements, count - 1, &tail); Tcl_IncrRefCount(tail); Tcl_DecrRefCount(elements); | |||
User Comments: |
vincentdarley added on 2004-04-23 18:56:01:
Logged In: YES user_id=32170 Thank you. Will commit fix asap. dgp added on 2004-04-23 03:30:23: File Added - 84717: 940281.patch Logged In: YES user_id=80530 Here's a possible patch to try. Causes no harm to the test suite here. |
Attachments:
- 940281.patch [download] added by dgp on 2004-04-23 03:30:23. [details]