diff options
| author | apnadkarni <apnmbx-wits@yahoo.com> | 2023-03-04 16:33:36 (GMT) |
|---|---|---|
| committer | apnadkarni <apnmbx-wits@yahoo.com> | 2023-03-04 16:33:36 (GMT) |
| commit | 234394e2df9328edc64b0da3e57f77c88e7a8f62 (patch) | |
| tree | af74d935bf31ec06120a81a68f51b9094f07d91d | |
| parent | 4e84e026848f7315c9a3fdf897df17df9bccd6e3 (diff) | |
| parent | 7b3ef36925e938aa7a1aff22d3d3e521e32f243d (diff) | |
| download | tcl-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.c | 29 |
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'; |
