summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--generic/tclFileName.c8
2 files changed, 12 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 98d77ec..7b38f39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;
}
}