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.
gentoo-overlay/app-arch/torrentzip/files/torrentzip-1.2-checksum-det...

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);