summaryrefslogtreecommitdiffstats
path: root/generic/tclListObj.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2005-08-25 21:48:41 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2005-08-25 21:48:41 (GMT)
commit2a48cc8339e254c85a4879e73946dc2b8e73593f (patch)
tree4ca7c3a2ab28798b341a8948ffeede25a992ecb1 /generic/tclListObj.c
parent7e5cfe7b8c9af9ddb94862cb919b25eb574f6e06 (diff)
downloadtcl-2a48cc8339e254c85a4879e73946dc2b8e73593f.zip
tcl-2a48cc8339e254c85a4879e73946dc2b8e73593f.tar.gz
tcl-2a48cc8339e254c85a4879e73946dc2b8e73593f.tar.bz2
Better to panic sanely than to crash with a bad memory access. [Bug 1267380]
Diffstat (limited to 'generic/tclListObj.c')
-rw-r--r--generic/tclListObj.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 7aaa8e0..1279a05 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.24 2005/07/19 00:09:07 dkf Exp $
+ * RCS: @(#) $Id: tclListObj.c,v 1.25 2005/08/25 21:48:41 dkf Exp $
*/
#include "tclInt.h"
@@ -1613,6 +1613,12 @@ UpdateStringOfList(listPtr)
elem = Tcl_GetStringFromObj(elemPtrs[i], &length);
listPtr->length += Tcl_ScanCountedElement(elem, length,
&flagPtr[i]) + 1;
+ /*
+ * Check for continued sanity. [Bug 1267380]
+ */
+ if (listPtr->length < 1) {
+ Tcl_Panic("string representation size exceeds sane bounds");
+ }
}
/*