summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2008-12-15 00:26:01 (EST)
committer ticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>2008-12-15 00:26:01 (EST)
commit5b68464bd8b8405fae90c1d96cdd7367a506bd5c (patch)
tree6dceed309a780f46317da5edc6bb67b74c307ec4
parent9514ede74ec0bcb994a6f6dae3676accaff6cd97 (diff)
opkg: balance the installed_files reference count
reducing some memory leaks git-svn-id: http://opkg.googlecode.com/svn/trunk@140 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358
-rw-r--r--libopkg/opkg_install.c2
-rw-r--r--libopkg/pkg.c1
-rw-r--r--libopkg/pkg_extract.c2
3 files changed, 5 insertions, 0 deletions
diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c
index e1a50cc..a3893c7 100644
--- a/libopkg/opkg_install.c
+++ b/libopkg/opkg_install.c
@@ -506,7 +506,9 @@ static int update_file_ownership(opkg_conf_t *conf, pkg_t *new_pkg, pkg_t *old_p
hash_table_insert(&conf->obs_file_hash, old_file, old_pkg);
}
}
+ pkg_free_installed_files(old_pkg);
}
+ pkg_free_installed_files(new_pkg);
return 0;
}
diff --git a/libopkg/pkg.c b/libopkg/pkg.c
index e15fc24..26b6efe 100644
--- a/libopkg/pkg.c
+++ b/libopkg/pkg.c
@@ -1737,6 +1737,7 @@ int pkg_info_preinstall_check(opkg_conf_t *conf)
// opkg_message(conf, OPKG_DEBUG2, "pkg %s: file=%s\n", pkg->name, installed_file);
file_hash_set_file_owner(conf, installed_file, pkg);
}
+ pkg_free_installed_files(pkg);
}
pkg_vec_free(installed_pkgs);
diff --git a/libopkg/pkg_extract.c b/libopkg/pkg_extract.c
index 0649b94..f972182 100644
--- a/libopkg/pkg_extract.c
+++ b/libopkg/pkg_extract.c
@@ -136,6 +136,8 @@ int pkg_extract_data_file_names_to_file(pkg_t *pkg, const char *file_name)
} else {
fputs(data_file, file);
}
+ free(line);
+ line=NULL;
}
}
fclose(tmp);