summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2024-08-12 09:54:34 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2024-08-12 09:54:34 (GMT)
commite6f05281e8bd39e5039f70ea28f3dc1edc769b7f (patch)
tree41b96f6e0c43e75475308ab64031a4b11aecc0b6 /generic/tclEncoding.c
parent549a05ca18008a890e751184ebc67635120d4b44 (diff)
parent0d18a9948c34190d652430c87db566a2dc21ffb4 (diff)
downloadtcl-core-zipfs-consolidation.zip
tcl-core-zipfs-consolidation.tar.gz
tcl-core-zipfs-consolidation.tar.bz2
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r--generic/tclEncoding.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index 624705d..ee80ba4 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -3983,6 +3983,15 @@ EscapeFromUtfProc(
break;
}
len = TclUtfToUniChar(src, &ch);
+ if (ch > 0xFFFF) {
+ /* Bug 201c7a3aa6 crash - tables are 256x256 (64K) */
+ if (PROFILE_STRICT(flags)) {
+ result = TCL_CONVERT_SYNTAX;
+ break;
+ }
+ /* Will be encoded as encoding specific replacement below */
+ ch = UNICODE_REPLACE_CHAR;
+ }
word = tableFromUnicode[(ch >> 8)][ch & 0xFF];
if ((word == 0) && (ch != 0)) {