Fix object management in error paths
authorJ. Ali Harlow <ali@juiblex.co.uk>
Sat, 11 Feb 2012 09:34:40 +0000 (09:34 +0000)
committerJ. Ali Harlow <ali@juiblex.co.uk>
Sat, 11 Feb 2012 09:34:40 +0000 (09:34 +0000)
src/main.c

index 2259596..032238c 100644 (file)
@@ -1031,7 +1031,7 @@ update_system(const char *install_root, struct razor_relocations *relocations,
                                    relocations, RAZOR_STAGE_SCRIPTS_PRE);
                if (r < 0) {
                        fprintf(stderr, "%s aborted\n", verb);
-                       razor_atomic_destroy(atomic);
+                       razor_root_close(root);
                        retval = r;
                } else {
                        razor_install_iterator_seek(ii, pos);
@@ -1047,11 +1047,10 @@ update_system(const char *install_root, struct razor_relocations *relocations,
 
                        (void)razor_root_commit(root);
                        retval = razor_atomic_commit(atomic);
-                       if (retval) {
+                       if (retval)
                                fprintf(stderr, "%s\n",
                                        razor_atomic_get_error_msg(atomic));
-                               razor_atomic_destroy(atomic);
-                       } else {
+                       else {
                                razor_install_iterator_seek(ii, pos);
                                update_packages(trans, ii, system, next,
                                                atomic, relocations,