summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Chantry <shiningxc@gmail.com>2008-07-25 02:02:17 +0200
committerDan McGee <dan@archlinux.org>2008-07-25 05:16:28 +0200
commit310b13a4b7da1a35e035ce39f47091c0d3877cd5 (patch)
tree87693fcc6e33cbab78ed44722f1d523558ea7f79
parentc317222d710e4d6b98f9387fedac2057cfa42c73 (diff)
downloadpacman-310b13a4b7da1a35e035ce39f47091c0d3877cd5.tar.gz
pacman-310b13a4b7da1a35e035ce39f47091c0d3877cd5.tar.xz
libalpm/package.c : fix infolevel bug in pkg_dup
The pkg_dup function shouldn't call any alpm_pkg_get_ accessors because this can fill the old package with all INFRQ_DESC fields for example, and this won't necessarily be reproduced in the new package (for all the fields that were copied before). Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/package.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index 13d0ae3f..49238ea8 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -766,19 +766,18 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg)
newpkg->force = pkg->force;
newpkg->reason = pkg->reason;
- newpkg->licenses = alpm_list_strdup(alpm_pkg_get_licenses(pkg));
- newpkg->replaces = alpm_list_strdup(alpm_pkg_get_replaces(pkg));
- newpkg->groups = alpm_list_strdup(alpm_pkg_get_groups(pkg));
- newpkg->files = alpm_list_strdup(alpm_pkg_get_files(pkg));
- newpkg->backup = alpm_list_strdup(alpm_pkg_get_backup(pkg));
- for(i = alpm_pkg_get_depends(pkg); i; i = alpm_list_next(i)) {
+ newpkg->licenses = alpm_list_strdup(pkg->licenses);
+ newpkg->replaces = alpm_list_strdup(pkg->replaces);
+ newpkg->groups = alpm_list_strdup(pkg->groups);
+ newpkg->files = alpm_list_strdup(pkg->files);
+ newpkg->backup = alpm_list_strdup(pkg->backup);
+ for(i = pkg->depends; i; i = alpm_list_next(i)) {
newpkg->depends = alpm_list_add(newpkg->depends, _alpm_dep_dup(i->data));
}
- newpkg->optdepends = alpm_list_strdup(alpm_pkg_get_optdepends(pkg));
- newpkg->conflicts = alpm_list_strdup(alpm_pkg_get_conflicts(pkg));
- newpkg->provides = alpm_list_strdup(alpm_pkg_get_provides(pkg));
- newpkg->deltas = alpm_list_copy_data(alpm_pkg_get_deltas(pkg),
- sizeof(pmdelta_t));
+ newpkg->optdepends = alpm_list_strdup(pkg->optdepends);
+ newpkg->conflicts = alpm_list_strdup(pkg->conflicts);
+ newpkg->provides = alpm_list_strdup(pkg->provides);
+ newpkg->deltas = alpm_list_copy_data(pkg->deltas, sizeof(pmdelta_t));
/* internal */
newpkg->origin = pkg->origin;