]> git.ipfire.org Git - pakfire.git/commitdiff
package: Refactor pakfire_package_get_filelist
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 5 Sep 2022 15:20:29 +0000 (15:20 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 5 Sep 2022 15:20:29 +0000 (15:20 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/package.c

index d85570a1e78e08a516f92f98c50726b55052910e..c99109acd327f007116fbe132ad10c11db6d1960 100644 (file)
@@ -1334,19 +1334,25 @@ static int pakfire_package_fetch_filelist(struct pakfire_package* pkg, struct pa
 }
 
 PAKFIRE_EXPORT struct pakfire_filelist* pakfire_package_get_filelist(struct pakfire_package* pkg) {
-       struct pakfire_filelist* filelist;
+       struct pakfire_filelist* filelist = NULL;
 
+       // Create a new filelist
        int r = pakfire_filelist_create(&filelist, pkg->pakfire);
        if (r)
-               return NULL;
+               goto ERROR;
 
+       // Fetch all entries from the repository database
        r = pakfire_package_fetch_filelist(pkg, filelist);
-       if (r) {
-               pakfire_filelist_unref(filelist);
-               return NULL;
-       }
+       if (r)
+               goto ERROR;
 
        return filelist;
+
+ERROR:
+       if (filelist)
+               pakfire_filelist_unref(filelist);
+
+       return NULL;
 }
 
 static int pakfire_package_append_file(struct pakfire_package* pkg, const char* path) {