diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-11-22 08:06:26 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-11-22 08:06:26 (GMT) |
commit | 802d3d1aa0b9c547056aa924a20fb7c49f69abb4 (patch) | |
tree | eda983a297686f2e46d335069c56074df9532afa /generic/tclEncoding.c | |
parent | 02d514946365467a42f4975cae649d248396f7f5 (diff) | |
parent | 0e7af6107e1f3b060581d8eb6bacb968c314314d (diff) | |
download | tcl-802d3d1aa0b9c547056aa924a20fb7c49f69abb4.zip tcl-802d3d1aa0b9c547056aa924a20fb7c49f69abb4.tar.gz tcl-802d3d1aa0b9c547056aa924a20fb7c49f69abb4.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r-- | generic/tclEncoding.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 413f2f2..9fda613 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -1677,7 +1677,9 @@ LoadTableEncoding( }; Tcl_DStringInit(&lineString); - Tcl_Gets(chan, &lineString); + if (Tcl_Gets(chan, &lineString) != TCL_IO_FAILURE) { + return NULL; + } line = Tcl_DStringValue(&lineString); fallback = (int) strtol(line, &line, 16); @@ -1717,8 +1719,11 @@ LoadTableEncoding( for (i = 0; i < numPages; i++) { int ch; const char *p; + int expected = 3 + 16 * (16 * 4 + 1); - Tcl_ReadChars(chan, objPtr, 3 + 16 * (16 * 4 + 1), 0); + if (Tcl_ReadChars(chan, objPtr, expected, 0) != expected) { + return NULL; + } p = TclGetString(objPtr); hi = (staticHex[UCHAR(p[0])] << 4) + staticHex[UCHAR(p[1])]; dataPtr->toUnicode[hi] = pageMemPtr; |