diff -r 0c8bdd8dc942 -r fab0b8a61dcb src/main.c --- a/src/main.c Thu Feb 16 17:44:25 2012 +0000 +++ b/src/main.c Wed Aug 20 18:57:52 2014 +0100 @@ -699,6 +699,7 @@ struct razor_importer *importer; struct razor_set *set; struct razor_rpm *rpm; + struct razor_error *error=NULL; struct razor_atomic *atomic; int len, imported_count = 0; char filename[256]; @@ -724,14 +725,13 @@ continue; snprintf(filename, sizeof filename, "%s/%s", dirname, de->d_name); - atomic = razor_atomic_open("Read RPM"); - rpm = razor_rpm_open(filename, atomic); - if (rpm == NULL) - fprintf(stderr, "%s\n", - razor_atomic_get_error_msg(atomic)); - razor_atomic_destroy(atomic); - if (rpm == NULL) + rpm = razor_rpm_open(filename, &error); + if (rpm == NULL) { + fprintf(stderr, "%s\n", razor_error_get_msg(error)); + razor_error_free(error); + error=NULL; continue; + } if (razor_importer_add_rpm(importer, rpm)) { fprintf(stderr, "couldn't import %s\n", filename); break; @@ -830,6 +830,7 @@ struct razor_package *package; struct razor_property *property; struct razor_rpm *rpm; + struct razor_error *error=NULL; const char *name, *version, *arch, *summary, *desc, *url, *license; const char *preunprog, *preun, *postunprog, *postun; const char *install_prefix; @@ -856,9 +857,11 @@ s = rpm_filename(name, version, arch); file = razor_concat("rpms/", s, NULL); free(s); - rpm = razor_rpm_open(file, atomic); + rpm = razor_rpm_open(file, &error); free(file); if (rpm == NULL) { + razor_atomic_abort(atomic, razor_error_get_msg(error)); + razor_error_free(error); razor_package_iterator_destroy(pkg_iter); razor_importer_destroy(importer); return NULL; @@ -917,6 +920,7 @@ const char *name, *version, *arch; char *file, *s; struct razor_rpm *rpm; + struct razor_error *error=NULL; razor_package_get_details(set, package, RAZOR_DETAIL_NAME, &name, @@ -930,11 +934,12 @@ s = rpm_filename(name, version, arch); file = razor_concat("rpms/", s, NULL); free(s); - rpm = razor_rpm_open(file, atomic); + rpm = razor_rpm_open(file, &error); free(file); if (rpm == NULL) { - fprintf(stderr, "%s\n", - razor_atomic_get_error_msg(atomic)); + razor_atomic_abort(atomic, razor_error_get_msg(error)); + fprintf(stderr, "%s\n", razor_error_get_msg(error)); + razor_error_free(error); return -1; } if (relocations)