diff options
author | apnadkarni <apnmbx-wits@yahoo.com> | 2024-08-12 09:54:34 (GMT) |
---|---|---|
committer | apnadkarni <apnmbx-wits@yahoo.com> | 2024-08-12 09:54:34 (GMT) |
commit | e6f05281e8bd39e5039f70ea28f3dc1edc769b7f (patch) | |
tree | 41b96f6e0c43e75475308ab64031a4b11aecc0b6 /generic/tclEncoding.c | |
parent | 549a05ca18008a890e751184ebc67635120d4b44 (diff) | |
parent | 0d18a9948c34190d652430c87db566a2dc21ffb4 (diff) | |
download | tcl-core-zipfs-consolidation.zip tcl-core-zipfs-consolidation.tar.gz tcl-core-zipfs-consolidation.tar.bz2 |
Merged trunkcore-zipfs-consolidation
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r-- | generic/tclEncoding.c | 9 |
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)) { |