diff options
Diffstat (limited to 'lib/libalpm/be_sync.c')
-rw-r--r-- | lib/libalpm/be_sync.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 7eb2539b..ef0f1ef4 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -70,6 +70,7 @@ static int sync_db_validate(alpm_db_t *db) { alpm_siglevel_t level; const char *dbpath; + alpm_siglist_t *siglist; if(db->status & DB_STATUS_VALID || db->status & DB_STATUS_MISSING) { return 0; @@ -102,10 +103,14 @@ static int sync_db_validate(alpm_db_t *db) if(level & ALPM_SIG_DATABASE) { if(_alpm_check_pgp_helper(db->handle, dbpath, NULL, level & ALPM_SIG_DATABASE_OPTIONAL, level & ALPM_SIG_DATABASE_MARGINAL_OK, - level & ALPM_SIG_DATABASE_UNKNOWN_OK)) { + level & ALPM_SIG_DATABASE_UNKNOWN_OK, &siglist)) { db->handle->pm_errno = ALPM_ERR_DB_INVALID_SIG; + alpm_siglist_cleanup(siglist); + free(siglist); return 1; } + alpm_siglist_cleanup(siglist); + free(siglist); } valid: |