> 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 <d...@archlinux.org>

I like this patch.

>+                      const char *dburl = alpm_db_get_url(db);
>+                      if(dburl) {
>+                              printf("%s/%s\n", dburl, 
>alpm_pkg_get_filename(pkg));
>+                      } else {
>+                              /* can't use WARNING here, we don't show 
>warnings in -Sp... */
>+                              pm_fprintf(stderr, PM_LOG_ERROR, _("no database 
>for package: %s\n"),
>+                                              alpm_pkg_get_name(pkg));
>+                      }

IMHO we should print all error messages to stderr. (This can be
done easily in callback functions.) I am sure that it would be better
with -Sp (-Sp users usually do pacman -Sup > foo.txt), and I don't see
any drawbacks in other cases. (What about our scripts?) See also:
FS#12101.

Opinions?
_______________________________________________
pacman-dev mailing list
pacman-dev@archlinux.org
http://www.archlinux.org/mailman/listinfo/pacman-dev

Reply via email to