diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-08-25 11:29:58 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2015-08-25 11:29:58 (GMT) |
commit | 4b8109368625d2b5d9c74f7f2375925b57860efa (patch) | |
tree | 25bc513b643f9e74c90ec3e3bb313c7cadf73dfe /unix | |
parent | 03fb986ef80ace8909712934c47c86a26a75d027 (diff) | |
download | tcl-4b8109368625d2b5d9c74f7f2375925b57860efa.zip tcl-4b8109368625d2b5d9c74f7f2375925b57860efa.tar.gz tcl-4b8109368625d2b5d9c74f7f2375925b57860efa.tar.bz2 |
Fix [0df7a1ec2674a76a]: unix/tclUnixFile.c: return value of call to TclpGetCwd in TclpFindExecutable is not checked, variable cwd is used uninitialized.
Diffstat (limited to 'unix')
-rw-r--r-- | unix/tclUnixFile.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/unix/tclUnixFile.c b/unix/tclUnixFile.c index c5f75a7..0a2099c 100644 --- a/unix/tclUnixFile.c +++ b/unix/tclUnixFile.c @@ -155,6 +155,11 @@ TclpFindExecutable( goto done; } + if (TclpGetCwd(NULL, &cwd) == NULL) { + TclSetObjNameOfExecutable(Tcl_NewObj(), NULL); + goto done; + } + /* * The name is relative to the current working directory. First strip off * a leading "./", if any, then add the full path name of the current @@ -168,8 +173,6 @@ TclpFindExecutable( Tcl_DStringInit(&nameString); Tcl_DStringAppend(&nameString, name, -1); - TclpGetCwd(NULL, &cwd); - Tcl_DStringFree(&buffer); Tcl_UtfToExternalDString(NULL, Tcl_DStringValue(&cwd), Tcl_DStringLength(&cwd), &buffer); |