From 9bfd6ff2756f0f2f164d28886cfe991010e9ae41 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Fri, 7 Feb 2014 13:04:58 -0500 Subject: restrict transaction package origins This moves the "wrong args" error up from trans_commit to add_pkg when used with a local pkg and adds the error for remove_pkg when used with a sync pkg, which currently just removes the db entry. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- lib/libalpm/add.c | 2 ++ lib/libalpm/remove.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index b0f97d89..45e16847 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -57,6 +57,8 @@ int SYMEXPORT alpm_add_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg) /* Sanity checks */ CHECK_HANDLE(handle, return -1); ASSERT(pkg != NULL, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); + ASSERT(pkg->origin != ALPM_PKG_FROM_LOCALDB, + RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); ASSERT(handle == pkg->handle, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); trans = handle->trans; ASSERT(trans != NULL, RET_ERR(handle, ALPM_ERR_TRANS_NULL, -1)); diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c index dce55784..132b30c6 100644 --- a/lib/libalpm/remove.c +++ b/lib/libalpm/remove.c @@ -63,6 +63,8 @@ int SYMEXPORT alpm_remove_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg) /* Sanity checks */ CHECK_HANDLE(handle, return -1); ASSERT(pkg != NULL, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); + ASSERT(pkg->origin == ALPM_PKG_FROM_LOCALDB, + RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); ASSERT(handle == pkg->handle, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1)); trans = handle->trans; ASSERT(trans != NULL, RET_ERR(handle, ALPM_ERR_TRANS_NULL, -1)); -- cgit v1.2.3-70-g09d2