}
}
- // Import filelist
- struct pakfire_filelist* filelist = pakfire_archive_get_filelist(archive);
- if (filelist) {
- pakfire_package_set_filelist(pkg, filelist);
- pakfire_filelist_unref(filelist);
- }
-
// Success!
*package = pkg;
return 0;
if (arch)
free(arch);
+ // Set package pointer right here to avoid an endless loop when loading the filelist
+ *package = pkg;
+
#ifdef ENABLE_DEBUG
const char* nevra = pakfire_package_get_nevra(pkg);
DEBUG(archive->pakfire, "Created package %s (%p) from archive %p\n",
}
}
+ // Import filelist
+ struct pakfire_filelist* filelist = pakfire_archive_get_filelist(archive);
+ if (filelist) {
+ pakfire_package_set_filelist(pkg, filelist);
+ pakfire_filelist_unref(filelist);
+ }
+
// Set digest
switch (PAKFIRE_ARCHIVE_CHECKSUM) {
case PAKFIRE_DIGEST_SHA2_512:
break;
}
- *package = pkg;
-
return 0;
}
else
r = pakfire_archive_make_legacy_package(archive, repo, package);
- // Import filelist
- struct pakfire_filelist* filelist = pakfire_archive_get_filelist(archive);
- if (filelist) {
- pakfire_package_set_filelist(*package, filelist);
- pakfire_filelist_unref(filelist);
- }
-
// Free dummy repository
if (dummy)
pakfire_repo_unref(dummy);