summaryrefslogtreecommitdiffstats
path: root/generic/tclZlib.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-11-24 14:05:58 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-11-24 14:05:58 (GMT)
commitddf4a5f1583b7a5c030020dcf4a1e712b5d465f2 (patch)
treee6c57b9ad18789b4ed5787e83087043a52ccb47d /generic/tclZlib.c
parent2a569c94ef1b7bac9236da247c9f02f96992eec3 (diff)
downloadtcl-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.c10
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) {