diff options
author | Dan McGee <dan@archlinux.org> | 2009-06-06 11:03:29 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2009-06-08 20:02:17 -0500 |
commit | aa579b843899ccba093f83faa942599ce1110c24 (patch) | |
tree | fceb0e56adfb20ed3b7ebdb41fedb92bfe60d75a /lib/libalpm/sync.c | |
parent | 19b8b638851713da64dd2aa7ff31e911ffe925cd (diff) | |
download | pacman-aa579b843899ccba093f83faa942599ce1110c24.tar.xz |
Give sensible feedback when a repo has no configured servers
This fixes FS#14899. When running an -Sp operation without servers
configured for a repository, we would segfault, so add an assert to the
backend method returning the first server preventing a null pointer
dereference.
In addition, add a new error code to libalpm that indicates we have no
servers configured for a repository. This makes -Sy and -S <package>
operations fail gracefully and helpfully when a repo is set up with no
servers, as the default mirrorlist in Arch is provided this way.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/sync.c')
-rw-r--r-- | lib/libalpm/sync.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 1d42cd9d..6645335b 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -769,7 +769,9 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data) if(_alpm_download_files(files, current->servers, cachedir)) { _alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"), current->treename); - pm_errno = PM_ERR_RETRIEVE; + if(pm_errno == 0) { + pm_errno = PM_ERR_RETRIEVE; + } goto error; } FREELIST(files); |