You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.0 KiB
52 lines
2.0 KiB
From 016915e16f32105590a6dc11a4adc988b2f8d9a9 Mon Sep 17 00:00:00 2001
|
|
From: Alexander Miller <alex.miller@gmx.de>
|
|
Date: Mon, 4 Mar 2024 19:26:21 +0100
|
|
Subject: [PATCH] Fix broken detection of missing or wrong TORRENTZIPPED-...
|
|
comment
|
|
|
|
The commit listed below introduces a regression where in MigrateZip(),
|
|
variable rc would be clobbered when its value is still needed. That
|
|
completely breaks handling of zips that should be re-zipped because
|
|
of missing or out of date TORRENTZIPPED-... comment.
|
|
|
|
Rewrite the offending code such that it no longer touches the variable.
|
|
|
|
Fixes: cf11c900079e ("Check for more errors while reading zip entries")
|
|
---
|
|
src/trrntzip.c | 20 ++++++++++++--------
|
|
1 file changed, 12 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/src/trrntzip.c b/src/trrntzip.c
|
|
index e55d217..49f796e 100644
|
|
--- a/src/trrntzip.c
|
|
+++ b/src/trrntzip.c
|
|
@@ -379,16 +379,20 @@ int MigrateZip(const char *zip_path, const char *pDir, WORKSPACE *ws,
|
|
|
|
CHECK_DYNAMIC_STRING_ARRAY(ws->FileNameArray, ws->iElements);
|
|
// Get the filelist from the zip file in original order in ws->FileNameArray
|
|
- rc = GetFileList(UnZipHandle, ws);
|
|
- if (rc != TZ_OK) {
|
|
+ switch (GetFileList(UnZipHandle, ws)) {
|
|
+ case TZ_OK:
|
|
+ break;
|
|
+ case TZ_CRITICAL:
|
|
logprint3(stderr, mig->fProcessLog, ErrorLog(ws),
|
|
- rc == TZ_CRITICAL
|
|
- ? "Error allocating memory!\n"
|
|
- : "Could not list contents of \"%s\". File is corrupted or "
|
|
- "contains entries with bad names.\n",
|
|
- szZipFileName);
|
|
+ "Error allocating memory!\n");
|
|
+ unzClose(UnZipHandle);
|
|
+ return TZ_CRITICAL;
|
|
+ default:
|
|
+ logprint3(stderr, mig->fProcessLog, ErrorLog(ws),
|
|
+ "Could not list contents of \"%s\". File is corrupted or "
|
|
+ "contains entries with bad names.\n", szZipFileName);
|
|
unzClose(UnZipHandle);
|
|
- return rc;
|
|
+ return TZ_ERR;
|
|
}
|
|
CHECK_DYNAMIC_STRING_ARRAY(ws->FileNameArray, ws->iElements);
|
|
|