diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2014-02-07 19:04:58 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-03-03 02:25:54 +0100 |
commit | 9bfd6ff2756f0f2f164d28886cfe991010e9ae41 (patch) | |
tree | 76c17f29bff03f1435a3c4cc889b5d11fc73823a | |
parent | bd3d1a17c2ec4297f05d092f0b93d025f811aa8a (diff) | |
download | pacman-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>
-rw-r--r-- | lib/libalpm/add.c | 2 | ||||
-rw-r--r-- | lib/libalpm/remove.c | 2 |
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)); |