summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2014-02-07 19:04:58 +0100
committerAllan McRae <allan@archlinux.org>2014-03-03 02:25:54 +0100
commit9bfd6ff2756f0f2f164d28886cfe991010e9ae41 (patch)
tree76c17f29bff03f1435a3c4cc889b5d11fc73823a /lib
parentbd3d1a17c2ec4297f05d092f0b93d025f811aa8a (diff)
downloadpacman-9bfd6ff2756f0f2f164d28886cfe991010e9ae41.tar.gz
pacman-9bfd6ff2756f0f2f164d28886cfe991010e9ae41.tar.xz
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 <andrew.gregory.8@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/add.c2
-rw-r--r--lib/libalpm/remove.c2
2 files changed, 4 insertions, 0 deletions
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));