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)
commitbefb4fd943a4fb537ac479745d3f84f7d4f4c968 (patch)
tree41b96f6e0c43e75475308ab64031a4b11aecc0b6 /generic/tclEncoding.c
parentf67f3d01d3a570658a7bab90a91d809d57bdeefe (diff)
parentfa42977f2b6f949bca8943b0bdb6a932c36354a2 (diff)
downloadtcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.zip
tcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.tar.gz
tcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.tar.bz2
Merged 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)) {