diff options
| -rw-r--r-- | lib/libalpm/be_sync.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 4676e8a6..8c67bb19 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -166,7 +166,8 @@ static int sync_db_populate(pmdb_t *db)  				ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) {  		_alpm_log(PM_LOG_ERROR, _("could not open %s: %s\n"), _alpm_db_path(db),  				archive_error_string(archive)); -		RET_ERR(PM_ERR_PKG_OPEN, 1); +		archive_read_finish(archive); +		RET_ERR(PM_ERR_DB_OPEN, 1);  	}  	while(archive_read_next_header(archive, &entry) == ARCHIVE_OK) { @@ -180,7 +181,7 @@ static int sync_db_populate(pmdb_t *db)  			pkg = _alpm_pkg_new();  			if(pkg == NULL) {  				archive_read_finish(archive); -				return(-1); +				RET_ERR(PM_ERR_MEMORY, -1);  			}  			name = archive_entry_pathname(entry); | 
