]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
repo_rpmdb's freestate() can free rootdir only after closedbenv() finishes. 57/head
authorAles Kozumplik <ales@redhat.com>
Tue, 23 Sep 2014 12:19:22 +0000 (14:19 +0200)
committerAles Kozumplik <ales@redhat.com>
Tue, 23 Sep 2014 12:21:02 +0000 (14:21 +0200)
Because serialize_dbenv_ops() still uses rootdir.

ext/repo_rpmdb.c

index c4ad78fa3fcc06d54ca06414d2a7e8258860629c..b4541c39910a7f7a3d361b0528ac5afa1dd4fbbd 100644 (file)
@@ -1414,12 +1414,12 @@ freestate(struct rpmdbstate *state)
   /* close down */
   if (!state)
     return;
-  if (state->rootdir)
-    solv_free(state->rootdir);
   if (state->db)
     state->db->close(state->db, 0);
   if (state->dbenv)
     closedbenv(state);
+  if (state->rootdir)
+    solv_free(state->rootdir);
   solv_free(state->rpmhead);
 }