summaryrefslogtreecommitdiffstats
path: root/generic/tclListObj.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclListObj.c')
-rw-r--r--generic/tclListObj.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 170831f..c1d1bfa 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.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: tclListObj.c,v 1.46 2007/04/24 22:31:39 msofer Exp $
+ * RCS: @(#) $Id: tclListObj.c,v 1.47 2007/09/03 21:27:22 kennykb Exp $
*/
#include "tclInt.h"
@@ -1108,10 +1108,17 @@ TclLindexFlat(
if (index<0 || index>=listLen) {
/*
* Index is out of range. Break out of loop with empty result.
+ * First check remaining indices for validity
*/
+ while (++i < indexCount) {
+ if (TclGetIntForIndex(interp, indexArray[i], -1, &index)
+ != TCL_OK) {
+ Tcl_DecrRefCount(sublistCopy);
+ return NULL;
+ }
+ }
listPtr = Tcl_NewObj();
- i = indexCount;
} else {
/*
* Extract the pointer to the appropriate element.