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/tclZlib.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/tclZlib.c')
-rw-r--r-- | generic/tclZlib.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/generic/tclZlib.c b/generic/tclZlib.c index 1077b7c..5a6dbc4 100644 --- a/generic/tclZlib.c +++ b/generic/tclZlib.c @@ -597,6 +597,9 @@ SetInflateDictionary( size_t length = 0; unsigned char *bytes = Tcl_GetByteArrayFromObj(compDictObj, &length); + if (bytes == NULL) { + return Z_DATA_ERROR; + } return inflateSetDictionary(strm, bytes, length); } return Z_OK; @@ -611,6 +614,9 @@ SetDeflateDictionary( size_t length = 0; unsigned char *bytes = Tcl_GetByteArrayFromObj(compDictObj, &length); + if (bytes == NULL) { + return Z_DATA_ERROR; + } return deflateSetDictionary(strm, bytes, length); } return Z_OK; @@ -1154,7 +1160,7 @@ Tcl_ZlibStreamSetCompressionDictionary( { ZlibStreamHandle *zshPtr = (ZlibStreamHandle *) zshandle; - if (compressionDictionaryObj && (NULL == Tcl_GetBytesFromObj(NULL, + if (compressionDictionaryObj && (NULL == Tcl_GetByteArrayFromObj( compressionDictionaryObj, (size_t *)NULL))) { /* Missing or invalid compression dictionary */ compressionDictionaryObj = NULL; @@ -3722,7 +3728,7 @@ ZlibStackChannelTransform( if (compDictObj != NULL) { cd->compDictObj = Tcl_DuplicateObj(compDictObj); Tcl_IncrRefCount(cd->compDictObj); - Tcl_GetBytesFromObj(NULL, cd->compDictObj, (size_t *)NULL); + Tcl_GetByteArrayFromObj(cd->compDictObj, (size_t *)NULL); } if (format == TCL_ZLIB_FORMAT_RAW) { |