Improved error handling in add_loadtarget()
This commit is contained in:
parent
467b83aed4
commit
ba13bc8b7b
1 changed files with 9 additions and 6 deletions
|
@ -68,24 +68,23 @@ int add_loadtarget(pmdb_t *db, pmtrans_t *trans, char *name)
|
||||||
|
|
||||||
/* no additional hyphens in version strings */
|
/* no additional hyphens in version strings */
|
||||||
if(strchr(info->version, '-') != strrchr(info->version, '-')) {
|
if(strchr(info->version, '-') != strrchr(info->version, '-')) {
|
||||||
FREEPKG(info);
|
|
||||||
pm_errno = PM_ERR_INVALID_NAME;
|
pm_errno = PM_ERR_INVALID_NAME;
|
||||||
return(-1);
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
dummy = db_get_pkgfromcache(db, info->name);
|
dummy = db_get_pkgfromcache(db, info->name);
|
||||||
/* only freshen this package if it is already installed and at a lesser version */
|
/* only freshen this package if it is already installed and at a lesser version */
|
||||||
if(trans->flags & PM_TRANS_FLAG_FRESHEN) {
|
if(trans->flags & PM_TRANS_FLAG_FRESHEN) {
|
||||||
if(dummy == NULL || rpmvercmp(dummy->version, info->version) >= 0) {
|
if(dummy == NULL || rpmvercmp(dummy->version, info->version) >= 0) {
|
||||||
FREEPKG(info);
|
pm_errno = PM_ERR_PKG_CANT_FRESH;
|
||||||
PM_RET_ERR(PM_ERR_PKG_CANT_FRESH, -1);
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* only install this package if it is not already installed */
|
/* only install this package if it is not already installed */
|
||||||
if(trans->type != PM_TRANS_TYPE_UPGRADE) {
|
if(trans->type != PM_TRANS_TYPE_UPGRADE) {
|
||||||
if(dummy) {
|
if(dummy) {
|
||||||
FREEPKG(info);
|
pm_errno = PM_ERR_PKG_INSTALLED;
|
||||||
PM_RET_ERR(PM_ERR_PKG_INSTALLED, -1);
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,6 +108,10 @@ int add_loadtarget(pmdb_t *db, pmtrans_t *trans, char *name)
|
||||||
trans->packages = pm_list_add(trans->packages, info);
|
trans->packages = pm_list_add(trans->packages, info);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
|
error:
|
||||||
|
FREEPKG(info);
|
||||||
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int add_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
int add_prepare(pmdb_t *db, pmtrans_t *trans, PMList **data)
|
||||||
|
|
Loading…
Add table
Reference in a new issue