summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2024-08-09 13:28:46 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2024-08-09 13:28:46 (GMT)
commit31d7c1db336a786deded7f23367893ebcb486f11 (patch)
tree4ebb801522739bb24040e5fcac010d400cd56ff0 /generic/tclEncoding.c
parentff1faad46be53c2889bf574c20096f4b27df310a (diff)
parent5a9ec4cb38cbc7d3a97ea154cffabaffa7da323a (diff)
downloadtcl-31d7c1db336a786deded7f23367893ebcb486f11.zip
tcl-31d7c1db336a786deded7f23367893ebcb486f11.tar.gz
tcl-31d7c1db336a786deded7f23367893ebcb486f11.tar.bz2
Merge trunk
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)) {