summaryrefslogtreecommitdiffstats
path: root/generic/tclEncoding.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclEncoding.c')
-rw-r--r--generic/tclEncoding.c9
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;