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 | befb4fd943a4fb537ac479745d3f84f7d4f4c968 (patch) | |
| tree | 41b96f6e0c43e75475308ab64031a4b11aecc0b6 /generic/tclEncoding.c | |
| parent | f67f3d01d3a570658a7bab90a91d809d57bdeefe (diff) | |
| parent | fa42977f2b6f949bca8943b0bdb6a932c36354a2 (diff) | |
| download | tcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.zip tcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.tar.gz tcl-befb4fd943a4fb537ac479745d3f84f7d4f4c968.tar.bz2 | |
Merged trunk
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)) { |
