summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorapnadkarni <apnmbx-wits@yahoo.com>2023-03-04 16:33:36 (GMT)
committerapnadkarni <apnmbx-wits@yahoo.com>2023-03-04 16:33:36 (GMT)
commit234394e2df9328edc64b0da3e57f77c88e7a8f62 (patch)
treeaf74d935bf31ec06120a81a68f51b9094f07d91d
parent4e84e026848f7315c9a3fdf897df17df9bccd6e3 (diff)
parent7b3ef36925e938aa7a1aff22d3d3e521e32f243d (diff)
downloadtcl-234394e2df9328edc64b0da3e57f77c88e7a8f62.zip
tcl-234394e2df9328edc64b0da3e57f77c88e7a8f62.tar.gz
tcl-234394e2df9328edc64b0da3e57f77c88e7a8f62.tar.bz2
Merge 8.7 - Protect zlib errors with check for null interp
-rw-r--r--generic/tclZlib.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/generic/tclZlib.c b/generic/tclZlib.c
index 6278628..718feb7 100644
--- a/generic/tclZlib.c
+++ b/generic/tclZlib.c
@@ -450,12 +450,16 @@ GenerateHeader(
headerPtr->nativeCommentBuf, MAX_COMMENT_LEN-1, NULL, &len,
NULL);
if (result != TCL_OK) {
- if (result == TCL_CONVERT_UNKNOWN) {
- Tcl_AppendResult(interp, "Comment contains characters > 0xFF", NULL);
- } else {
- Tcl_AppendResult(interp, "Comment too large for zip", NULL);
+ if (interp) {
+ if (result == TCL_CONVERT_UNKNOWN) {
+ Tcl_AppendResult(
+ interp, "Comment contains characters > 0xFF", NULL);
+ }
+ else {
+ Tcl_AppendResult(interp, "Comment too large for zip", NULL);
+ }
}
- result = TCL_ERROR;
+ result = TCL_ERROR; /* TCL_CONVERT_* -> TCL_ERROR*/
goto error;
}
headerPtr->nativeCommentBuf[len] = '\0';
@@ -482,12 +486,17 @@ GenerateHeader(
headerPtr->nativeFilenameBuf, MAXPATHLEN-1, NULL, &len,
NULL);
if (result != TCL_OK) {
- if (result == TCL_CONVERT_UNKNOWN) {
- Tcl_AppendResult(interp, "Filename contains characters > 0xFF", NULL);
- } else {
- Tcl_AppendResult(interp, "Filename too large for zip", NULL);
+ if (interp) {
+ if (result == TCL_CONVERT_UNKNOWN) {
+ Tcl_AppendResult(
+ interp, "Filename contains characters > 0xFF", NULL);
+ }
+ else {
+ Tcl_AppendResult(
+ interp, "Filename too large for zip", NULL);
+ }
}
- result = TCL_ERROR;
+ result = TCL_ERROR; /* TCL_CONVERT_* -> TCL_ERROR*/
goto error;
}
headerPtr->nativeFilenameBuf[len] = '\0';