diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/db.c | 5 | ||||
-rw-r--r-- | lib/libalpm/handle.c | 23 | ||||
-rw-r--r-- | lib/libalpm/util.h | 4 |
3 files changed, 28 insertions, 4 deletions
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index 55b711fb..cc01bbf4 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -90,10 +90,7 @@ int SYMEXPORT alpm_db_unregister_all(void) /* Do not unregister a database if a transaction is on-going */ ASSERT(handle->trans == NULL, RET_ERR(PM_ERR_TRANS_NOT_NULL, -1)); - /* since the local DB is registered in alpm_initialize(), we'll be - * symmetrical and let the cleanup occur in alpm_release() */ - - /* and also sync ones */ + /* unregister all sync dbs */ for(i = handle->dbs_sync; i; i = i->next) { db = i->data; db->ops->unregister(db); diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 42c0cd1f..fd40f193 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -318,6 +318,8 @@ int SYMEXPORT alpm_option_set_root(const char *root) ALPM_LOG_FUNC; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); + if(!root) { pm_errno = PM_ERR_WRONG_ARGS; return -1; @@ -358,6 +360,7 @@ int SYMEXPORT alpm_option_set_dbpath(const char *dbpath) ALPM_LOG_FUNC; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); if(!dbpath) { pm_errno = PM_ERR_WRONG_ARGS; return -1; @@ -396,6 +399,7 @@ int SYMEXPORT alpm_option_add_cachedir(const char *cachedir) ALPM_LOG_FUNC; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); if(!cachedir) { pm_errno = PM_ERR_WRONG_ARGS; return -1; @@ -418,6 +422,7 @@ int SYMEXPORT alpm_option_add_cachedir(const char *cachedir) void SYMEXPORT alpm_option_set_cachedirs(alpm_list_t *cachedirs) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->cachedirs) FREELIST(handle->cachedirs); if(cachedirs) handle->cachedirs = cachedirs; } @@ -427,6 +432,7 @@ int SYMEXPORT alpm_option_remove_cachedir(const char *cachedir) char *vdata = NULL; char *newcachedir; size_t cachedirlen; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); /* verify cachedir ends in a '/' */ cachedirlen = strlen(cachedir); if(cachedir[cachedirlen-1] != '/') { @@ -450,6 +456,7 @@ int SYMEXPORT alpm_option_set_logfile(const char *logfile) ALPM_LOG_FUNC; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); if(!logfile) { pm_errno = PM_ERR_WRONG_ARGS; return -1; @@ -490,16 +497,19 @@ int SYMEXPORT alpm_option_set_signaturedir(const char *signaturedir) void SYMEXPORT alpm_option_set_usesyslog(int usesyslog) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->usesyslog = usesyslog; } void SYMEXPORT alpm_option_add_noupgrade(const char *pkg) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->noupgrade = alpm_list_add(handle->noupgrade, strdup(pkg)); } void SYMEXPORT alpm_option_set_noupgrades(alpm_list_t *noupgrade) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->noupgrade) FREELIST(handle->noupgrade); if(noupgrade) handle->noupgrade = noupgrade; } @@ -507,6 +517,7 @@ void SYMEXPORT alpm_option_set_noupgrades(alpm_list_t *noupgrade) int SYMEXPORT alpm_option_remove_noupgrade(const char *pkg) { char *vdata = NULL; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); handle->noupgrade = alpm_list_remove_str(handle->noupgrade, pkg, &vdata); if(vdata != NULL) { FREE(vdata); @@ -517,11 +528,13 @@ int SYMEXPORT alpm_option_remove_noupgrade(const char *pkg) void SYMEXPORT alpm_option_add_noextract(const char *pkg) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->noextract = alpm_list_add(handle->noextract, strdup(pkg)); } void SYMEXPORT alpm_option_set_noextracts(alpm_list_t *noextract) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->noextract) FREELIST(handle->noextract); if(noextract) handle->noextract = noextract; } @@ -529,6 +542,7 @@ void SYMEXPORT alpm_option_set_noextracts(alpm_list_t *noextract) int SYMEXPORT alpm_option_remove_noextract(const char *pkg) { char *vdata = NULL; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); handle->noextract = alpm_list_remove_str(handle->noextract, pkg, &vdata); if(vdata != NULL) { FREE(vdata); @@ -539,11 +553,13 @@ int SYMEXPORT alpm_option_remove_noextract(const char *pkg) void SYMEXPORT alpm_option_add_ignorepkg(const char *pkg) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->ignorepkg = alpm_list_add(handle->ignorepkg, strdup(pkg)); } void SYMEXPORT alpm_option_set_ignorepkgs(alpm_list_t *ignorepkgs) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->ignorepkg) FREELIST(handle->ignorepkg); if(ignorepkgs) handle->ignorepkg = ignorepkgs; } @@ -551,6 +567,7 @@ void SYMEXPORT alpm_option_set_ignorepkgs(alpm_list_t *ignorepkgs) int SYMEXPORT alpm_option_remove_ignorepkg(const char *pkg) { char *vdata = NULL; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); handle->ignorepkg = alpm_list_remove_str(handle->ignorepkg, pkg, &vdata); if(vdata != NULL) { FREE(vdata); @@ -561,11 +578,13 @@ int SYMEXPORT alpm_option_remove_ignorepkg(const char *pkg) void SYMEXPORT alpm_option_add_ignoregrp(const char *grp) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->ignoregrp = alpm_list_add(handle->ignoregrp, strdup(grp)); } void SYMEXPORT alpm_option_set_ignoregrps(alpm_list_t *ignoregrps) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->ignoregrp) FREELIST(handle->ignoregrp); if(ignoregrps) handle->ignoregrp = ignoregrps; } @@ -573,6 +592,7 @@ void SYMEXPORT alpm_option_set_ignoregrps(alpm_list_t *ignoregrps) int SYMEXPORT alpm_option_remove_ignoregrp(const char *grp) { char *vdata = NULL; + ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1)); handle->ignoregrp = alpm_list_remove_str(handle->ignoregrp, grp, &vdata); if(vdata != NULL) { FREE(vdata); @@ -583,17 +603,20 @@ int SYMEXPORT alpm_option_remove_ignoregrp(const char *grp) void SYMEXPORT alpm_option_set_arch(const char *arch) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); if(handle->arch) FREE(handle->arch); if(arch) handle->arch = strdup(arch); } void SYMEXPORT alpm_option_set_usedelta(int usedelta) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->usedelta = usedelta; } void SYMEXPORT alpm_option_set_checkspace(int checkspace) { + ASSERT(handle != NULL, RET_ERR_VOID(PM_ERR_HANDLE_NULL)); handle->checkspace = checkspace; } diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 1816e360..eb1cad36 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -59,6 +59,10 @@ #define ASSERT(cond, action) do { if(!(cond)) { action; } } while(0) +#define RET_ERR_VOID(err) do { pm_errno = (err); \ + _alpm_log(PM_LOG_DEBUG, "returning error %d from %s : %s\n", err, __func__, alpm_strerrorlast()); \ + return; } while(0) + #define RET_ERR(err, ret) do { pm_errno = (err); \ _alpm_log(PM_LOG_DEBUG, "returning error %d from %s : %s\n", err, __func__, alpm_strerrorlast()); \ return (ret); } while(0) |