copy assumeinstalled options

All other option setters copy their input.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Andrew Gregory 2015-07-16 19:05:33 -04:00 committed by Allan McRae
parent ccd3a3eb9f
commit 48f4efd9a1
2 changed files with 10 additions and 3 deletions

View File

@ -591,11 +591,13 @@ int SYMEXPORT alpm_option_remove_ignoregroup(alpm_handle_t *handle, const char *
int SYMEXPORT alpm_option_add_assumeinstalled(alpm_handle_t *handle, const alpm_depend_t *dep)
{
alpm_depend_t *depcpy;
CHECK_HANDLE(handle, return -1);
ASSERT(dep->mod == ALPM_DEP_MOD_EQ || dep->mod == ALPM_DEP_MOD_ANY,
RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1));
ASSERT((depcpy = _alpm_dep_dup(dep)), RET_ERR(handle, ALPM_ERR_MEMORY, -1));
handle->assumeinstalled = alpm_list_add(handle->assumeinstalled, (void *)dep);
handle->assumeinstalled = alpm_list_add(handle->assumeinstalled, depcpy);
return 0;
}
@ -606,7 +608,12 @@ int SYMEXPORT alpm_option_set_assumeinstalled(alpm_handle_t *handle, alpm_list_t
alpm_list_free_inner(handle->assumeinstalled, (alpm_list_fn_free)alpm_dep_free);
alpm_list_free(handle->assumeinstalled);
}
handle->assumeinstalled = deps;
while(deps) {
if(alpm_option_add_assumeinstalled(handle, deps->data) != 0) {
return -1;
}
deps = deps->next;
}
return 0;
}

View File

@ -801,9 +801,9 @@ static int setup_libalpm(void)
pm_printf(ALPM_LOG_DEBUG, "parsed assume installed: %s %s\n", dep->name, dep->version);
ret = alpm_option_add_assumeinstalled(handle, dep);
alpm_dep_free(dep);
if(ret) {
pm_printf(ALPM_LOG_ERROR, _("Failed to pass %s entry to libalpm"), "assume-installed");
alpm_dep_free(dep);
return ret;
}
}