From: Michael Tremer Date: Fri, 21 May 2021 11:08:58 +0000 (+0000) Subject: archive: Close archive if an entry could not be found X-Git-Tag: 0.9.28~1285^2~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=914c554e77a30a38eb91ce2aa3430840c6078837;p=pakfire.git archive: Close archive if an entry could not be found Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index 5d451d50c..89d99dfc2 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -158,7 +158,13 @@ static int open_archive_and_find(PakfireArchive archive, struct archive** a, if (r) return r; - return find_archive_entry(entry, *a, filename); + r = find_archive_entry(entry, *a, filename); + + // Close archive on error + if (r) + close_archive(archive, *a); + + return r; } static int open_archive_and_read(PakfireArchive archive, const char* filename, @@ -1029,6 +1035,9 @@ static int pakfire_archive_load_filelist(PakfireArchive archive) { r = pakfire_filelist_create_from_file(&archive->filelist, archive->pakfire, data, archive->format); + if (r) { + ERROR(archive->pakfire, "Could not parse filelist\n"); + } free(data);