diff options
author | hobbs <hobbs> | 2006-08-30 17:48:48 (GMT) |
---|---|---|
committer | hobbs <hobbs> | 2006-08-30 17:48:48 (GMT) |
commit | 8f481c22e737471e3dc5211eec9d4296f8f7da9f (patch) | |
tree | 14aba76b3795594b8283cd1dfab48c4a53f8048a /generic/tclIOUtil.c | |
parent | 0fbcd16e10654644e7054dfb05b7953c1cb34d34 (diff) | |
download | tcl-8f481c22e737471e3dc5211eec9d4296f8f7da9f.zip tcl-8f481c22e737471e3dc5211eec9d4296f8f7da9f.tar.gz tcl-8f481c22e737471e3dc5211eec9d4296f8f7da9f.tar.bz2 |
* win/tclWinFCmd.c: [Bug 1548263] Added test for NULL return
* generic/tclIOUtil.c: from Tcl_FSGetNormalizedPath which was
causing segv's
Diffstat (limited to 'generic/tclIOUtil.c')
-rw-r--r-- | generic/tclIOUtil.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c index b5cf2ec..7ee2583 100644 --- a/generic/tclIOUtil.c +++ b/generic/tclIOUtil.c @@ -17,7 +17,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclIOUtil.c,v 1.77.2.30 2006/08/21 14:56:28 dgp Exp $ + * RCS: @(#) $Id: tclIOUtil.c,v 1.77.2.31 2006/08/30 17:48:48 hobbs Exp $ */ #include "tclInt.h" @@ -4013,6 +4013,9 @@ NativeCreateNativeRep(pathObjPtr) /* Make sure the normalized path is set */ validPathObjPtr = Tcl_FSGetNormalizedPath(NULL, pathObjPtr); + if (validPathObjPtr == NULL) { + return NULL; + } str = Tcl_GetStringFromObj(validPathObjPtr, &len); #ifdef __WIN32__ @@ -4028,7 +4031,7 @@ NativeCreateNativeRep(pathObjPtr) #endif nativePathPtr = ckalloc((unsigned) len); memcpy((VOID*)nativePathPtr, (VOID*)Tcl_DStringValue(&ds), (size_t) len); - + Tcl_DStringFree(&ds); return (ClientData)nativePathPtr; } @@ -5436,7 +5439,9 @@ Tcl_FSGetTranslatedPath(interp, pathPtr) retObj = srcFsPathPtr->translatedPathPtr; } - Tcl_IncrRefCount(retObj); + if (retObj) { + Tcl_IncrRefCount(retObj); + } return retObj; } |