diff options
author | ticktock35 <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) |
commit | 5b68464bd8b8405fae90c1d96cdd7367a506bd5c (patch) | |
tree | 6dceed309a780f46317da5edc6bb67b74c307ec4 /libopkg | |
parent | 9514ede74ec0bcb994a6f6dae3676accaff6cd97 (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
Diffstat (limited to 'libopkg')
-rw-r--r-- | libopkg/opkg_install.c | 2 | ||||
-rw-r--r-- | libopkg/pkg.c | 1 | ||||
-rw-r--r-- | libopkg/pkg_extract.c | 2 |
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); |