Tcl Source Code

Check-in [5548df43ec]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:3613569 Handle case when TclpTempFileNameForLibrary returns NULL.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5548df43ec19c59e8c86f108a033cf659c3d7e9e
User & Date: dgp 2013-05-20 15:10:18
Context
2013-05-22
10:36
* doc/file.n: [Bug 3613671]: Added note to portability section on the fact that [file owned] does ...
check-in: a9869d4e5a user: dkf tags: trunk
2013-05-20
16:14
Merge trunk. Still crippled in the same way as before. check-in: d99df0e9f0 user: dgp tags: dgp-refactor
15:10
3613569 Handle case when TclpTempFileNameForLibrary returns NULL. check-in: 5548df43ec user: dgp tags: trunk
14:17
[3613567]: Corrected sense of test on results of access() in temp file creation. check-in: 98e89843c0 user: dkf tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclIOUtil.c.

3221
3222
3223
3224
3225
3226
3227



3228
3229
3230
3231
3232
3233
3234

    /*
     * Get a temporary filename to use, first to copy the file into, and then
     * to load.
     */

    copyToPtr = TclpTempFileNameForLibrary(interp, pathPtr);



    Tcl_IncrRefCount(copyToPtr);

    copyFsPtr = Tcl_FSGetFileSystemForPath(copyToPtr);
    if ((copyFsPtr == NULL) || (copyFsPtr == fsPtr)) {
	/*
	 * We already know we can't use Tcl_FSLoadFile from this filesystem,
	 * and we must avoid a possible infinite loop. Try to delete the file







>
>
>







3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237

    /*
     * Get a temporary filename to use, first to copy the file into, and then
     * to load.
     */

    copyToPtr = TclpTempFileNameForLibrary(interp, pathPtr);
    if (copyToPtr == NULL) {
	return TCL_ERROR;
    }
    Tcl_IncrRefCount(copyToPtr);

    copyFsPtr = Tcl_FSGetFileSystemForPath(copyToPtr);
    if ((copyFsPtr == NULL) || (copyFsPtr == fsPtr)) {
	/*
	 * We already know we can't use Tcl_FSLoadFile from this filesystem,
	 * and we must avoid a possible infinite loop. Try to delete the file