summaryrefslogtreecommitdiffstats
path: root/lib/libalpm
diff options
context:
space:
mode:
authorAurelien Foret <aurelien@archlinux.org>2005-10-10 17:03:35 +0200
committerAurelien Foret <aurelien@archlinux.org>2005-10-10 17:03:35 +0200
commit6b7b9787d52ac5e7f36ba18f697bb727d43c4915 (patch)
treedeed2b10bd0519d6b7c86d5cadc825518c836217 /lib/libalpm
parent5d61a44759dee774e67178097c2f8acffe12836f (diff)
downloadpacman-6b7b9787d52ac5e7f36ba18f697bb727d43c4915.tar.gz
pacman-6b7b9787d52ac5e7f36ba18f697bb727d43c4915.tar.xz
- more sanity checks
- alpm_pkg_free can now return an error code
Diffstat (limited to 'lib/libalpm')
-rw-r--r--lib/libalpm/alpm.c11
-rw-r--r--lib/libalpm/alpm.h2
-rw-r--r--lib/libalpm/trans.c8
3 files changed, 12 insertions, 9 deletions
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index ebb01221..427c536b 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -394,8 +394,7 @@ void *alpm_pkg_getinfo(pmpkg_t *pkg, unsigned char parm)
}
break;
/* Depends entry */
- /* ORE
- not needed: the cache is loaded with DEPENDS by default
+ /* not needed: the cache is loaded with DEPENDS by default
case PM_PKG_DEPENDS:
case PM_PKG_REQUIREDBY:
case PM_PKG_CONFLICTS:
@@ -473,9 +472,14 @@ int alpm_pkg_load(char *filename, pmpkg_t **pkg)
return(0);
}
-void alpm_pkg_free(pmpkg_t *pkg)
+int alpm_pkg_free(pmpkg_t *pkg)
{
+ ASSERT(pkg != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+ ASSERT(pkg->origin != PKG_FROM_CACHE, RET_ERR(PM_ERR_XXX, -1));
+
pkg_free(pkg);
+
+ return(0);
}
int alpm_pkg_vercmp(const char *ver1, const char *ver2)
@@ -542,6 +546,7 @@ void *alpm_trans_getinfo(unsigned char parm)
/* Sanity checks */
ASSERT(handle != NULL, return(NULL));
+ ASSERT(handle->trans != NULL, return(NULL));
trans = handle->trans;
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 3ab747e3..a6bdf384 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -156,7 +156,7 @@ enum {
void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm);
int alpm_pkg_load(char *filename, PM_PKG **pkg);
-void alpm_pkg_free(PM_PKG *pkg);
+int alpm_pkg_free(PM_PKG *pkg);
int alpm_pkg_vercmp(const char *ver1, const char *ver2);
/*
diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c
index 12d35806..7a91cb9b 100644
--- a/lib/libalpm/trans.c
+++ b/lib/libalpm/trans.c
@@ -81,9 +81,7 @@ void trans_free(pmtrans_t *trans)
int trans_init(pmtrans_t *trans, unsigned char type, unsigned char flags, alpm_trans_cb_event event, alpm_trans_cb_conv conv)
{
/* Sanity checks */
- if(trans == NULL) {
- RET_ERR(PM_ERR_TRANS_NULL, -1);
- }
+ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
/* ORE
perform sanity checks on type and flags:
@@ -148,7 +146,7 @@ int trans_prepare(pmtrans_t *trans, PMList **data)
*data = NULL;
/* Sanity checks */
- ASSERT(trans != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
/* If there's nothing to do, return without complaining */
if(trans->packages == NULL) {
@@ -185,7 +183,7 @@ int trans_prepare(pmtrans_t *trans, PMList **data)
int trans_commit(pmtrans_t *trans)
{
/* Sanity checks */
- ASSERT(trans != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
+ ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
/* If there's nothing to do, return without complaining */
if(trans->packages == NULL) {