diff options
| author | apnadkarni <apnmbx-wits@yahoo.com> | 2024-08-09 02:53:11 (GMT) |
|---|---|---|
| committer | apnadkarni <apnmbx-wits@yahoo.com> | 2024-08-09 02:53:11 (GMT) |
| commit | 729a9f2717500b1b42cb0b2066253858ae8fa1cb (patch) | |
| tree | 9683a398991b1da76a001aac79dcf295dc56c195 /generic/tclEncoding.c | |
| parent | 4cb20e620ca55e8164d2f0ba15e753b874a85bae (diff) | |
| download | tcl-729a9f2717500b1b42cb0b2066253858ae8fa1cb.zip tcl-729a9f2717500b1b42cb0b2066253858ae8fa1cb.tar.gz tcl-729a9f2717500b1b42cb0b2066253858ae8fa1cb.tar.bz2 | |
Proposed fix for crash [201c7a3aa6] - crash on non-BMP
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)) { |
