Get the owner of the file_name after the offline root has been stripped.
authorgraham.gower@gmail.com <graham.gower@gmail.com@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 21 Feb 2011 04:24:42 +0000 (04:24 +0000)
committergraham.gower@gmail.com <graham.gower@gmail.com@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 21 Feb 2011 04:24:42 +0000 (04:24 +0000)
Fixes a problem where the old package maintains that it owns a file even
though the new pkg has been installed with --force-overwrite.

git-svn-id: http://opkg.googlecode.com/svn/trunk@605 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

libopkg/pkg_hash.c

index 59b285d3f66056759e804a70b0a3873b90242653..b7f1573d36a15cc89eeec9911fc657a30673fac7 100644 (file)
@@ -650,7 +650,7 @@ file_hash_get_file_owner(const char *file_name)
 void
 file_hash_set_file_owner(const char *file_name, pkg_t *owning_pkg)
 {
-       pkg_t *old_owning_pkg = hash_table_get(&conf->file_hash, file_name);
+       pkg_t *old_owning_pkg;
        int file_name_len = strlen(file_name);
 
        if (file_name[file_name_len -1] == '/')
@@ -658,6 +658,7 @@ file_hash_set_file_owner(const char *file_name, pkg_t *owning_pkg)
 
        file_name = strip_offline_root(file_name);
 
+       old_owning_pkg = hash_table_get(&conf->file_hash, file_name);
        hash_table_insert(&conf->file_hash, file_name, owning_pkg);
 
        if (old_owning_pkg) {