diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | generic/tclFileName.c | 8 |
2 files changed, 12 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2008-12-03 Don Porter <dgp@users.sourceforge.net> + + * generic/tclFileName.c (TclDoGlob): One of the + Tcl_FSMatchInDirectory() calls did not have its return code + checked. Some VFS drivers can return TCL_ERROR, and when that's + not checked, the error message gets converted into a list of + matching files returned by [glob], with ridiculous results. + 2008-12-01 Don Porter <dgp@users.sourceforge.net> * generic/tclIO.c (TclFinalizeIOSubsystem): Revised latest commit to diff --git a/generic/tclFileName.c b/generic/tclFileName.c index 15c04d8..c14893f 100644 --- a/generic/tclFileName.c +++ b/generic/tclFileName.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclFileName.c,v 1.40.2.16 2008/08/13 17:59:06 dgp Exp $ + * RCS: @(#) $Id: tclFileName.c,v 1.40.2.17 2008/12/03 06:36:05 dgp Exp $ */ #include "tclInt.h" @@ -2662,10 +2662,10 @@ TclDoGlob(interp, separators, headPtr, tail, types) nameObj = Tcl_NewStringObj(name, Tcl_DStringLength(headPtr)); Tcl_IncrRefCount(nameObj); - Tcl_FSMatchInDirectory(interp, Tcl_GetObjResult(interp), nameObj, - NULL, types); + result = Tcl_FSMatchInDirectory(interp, Tcl_GetObjResult(interp), + nameObj, NULL, types); Tcl_DecrRefCount(nameObj); - return TCL_OK; + return result; } } |