On 08/06/11 17:51, Dan McGee wrote:
They are placeholders, but important for things like trying to re-sync a
database missing a signature. By using the alpm_db_valid() method at the
right time, a client can take the appropriate action with these invalid
databases as necessary.

In pacman's case, we disallow just about anything that involves looking
at a sync database outside of an '-Sy' operation (although we do check
the validity immediately after). A few operations are still permitted-
'-Q' ops that don't touch sync databases as well as '-R'.

Signed-off-by: Dan McGee<[email protected]>
---
  lib/libalpm/be_sync.c |    6 +-----
  src/pacman/database.c |    2 +-
  src/pacman/query.c    |    7 ++-----
  src/pacman/remove.c   |    2 +-

<snip>

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 2388e5c..ce305a4 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
<snip>
@@ -100,6 +103,28 @@ int needs_root(void)
        }
  }

+int check_syncdbs(int min_count, int check_valid)

unsigned int min_count?

+{
+       alpm_list_t *i, *sync_dbs;
+       sync_dbs = alpm_option_get_syncdbs(config->handle);
+       if(sync_dbs == NULL || alpm_list_count(sync_dbs)<  min_count) {

otherwise we are doing a comparison between signed and unsigned integer expressions here.

Allan

Reply via email to