]> git.ipfire.org Git - pakfire.git/commitdiff
filelist: Clear number of entries after the filelist has been cleared
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 31 Dec 2024 11:49:48 +0000 (11:49 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 31 Dec 2024 11:52:18 +0000 (11:52 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/filelist.c

index 6b97d8109caa05474f724507a68c714e7453b4b7..bac931411b53534a4ce624de075876da78bdbec5 100644 (file)
@@ -74,8 +74,6 @@ static void pakfire_filelist_free(struct pakfire_filelist* list) {
                pakfire_unref(list->pakfire);
        if (list->ctx)
                pakfire_ctx_unref(list->ctx);
-       if (list->files)
-               free(list->files);
        free(list);
 }
 
@@ -111,8 +109,17 @@ PAKFIRE_EXPORT int pakfire_filelist_is_empty(struct pakfire_filelist* list) {
 }
 
 PAKFIRE_EXPORT void pakfire_filelist_clear(struct pakfire_filelist* list) {
-       for (unsigned int i = 0; i < list->num_files; i++)
-               pakfire_file_unref(list->files[i]);
+       if (list->files) {
+               for (unsigned int i = 0; i < list->num_files; i++)
+                       pakfire_file_unref(list->files[i]);
+
+               // Free the array
+               free(list->files);
+               list->files = NULL;
+
+               // Reset number of files on the list
+               list->num_files = 0;
+       }
 }
 
 PAKFIRE_EXPORT struct pakfire_file* pakfire_filelist_get(struct pakfire_filelist* list, size_t index) {