diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-11-24 14:05:58 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-11-24 14:05:58 (GMT) |
commit | ddf4a5f1583b7a5c030020dcf4a1e712b5d465f2 (patch) | |
tree | e6c57b9ad18789b4ed5787e83087043a52ccb47d /generic/tclIO.c | |
parent | 2a569c94ef1b7bac9236da247c9f02f96992eec3 (diff) | |
download | tcl-ddf4a5f1583b7a5c030020dcf4a1e712b5d465f2.zip tcl-ddf4a5f1583b7a5c030020dcf4a1e712b5d465f2.tar.gz tcl-ddf4a5f1583b7a5c030020dcf4a1e712b5d465f2.tar.bz2 |
Use Tcl_GetByteArrayFromObj(... in stead of Tcl_GetBytesFromObj(NULL,.... Add some more error-checking for invalid byte-arrays
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r-- | generic/tclIO.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c index 26db2f4..1541390 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -4638,7 +4638,7 @@ Tcl_GetsObj( if ((statePtr->encoding == NULL) && ((statePtr->inputTranslation == TCL_TRANSLATE_LF) || (statePtr->inputTranslation == TCL_TRANSLATE_CR)) - && Tcl_GetBytesFromObj(NULL, objPtr, (size_t *)NULL) != NULL) { + && Tcl_GetByteArrayFromObj(objPtr, (size_t *)NULL) != NULL) { return TclGetsObjBinary(chan, objPtr); } @@ -5057,6 +5057,10 @@ TclGetsObjBinary( */ byteArray = Tcl_GetByteArrayFromObj(objPtr, &byteLen); + if (byteArray == NULL) { + Tcl_SetErrno(EILSEQ); + return -1; + } oldFlags = statePtr->inputEncodingFlags; oldRemoved = BUFFER_PADDING; oldLength = byteLen; @@ -5945,7 +5949,7 @@ DoReadChars( && (statePtr->inEofChar == '\0'); if (appendFlag) { - if (binaryMode && (NULL == Tcl_GetBytesFromObj(NULL, objPtr, (size_t *)NULL))) { + if (binaryMode && (NULL == Tcl_GetByteArrayFromObj(objPtr, (size_t *)NULL))) { binaryMode = 0; } } else { |