libalpm: Force update when database is marked as corrupted.
When a database and its signature is updated non-atomically on a server, there is a window where a user may update the database but grab the old signature. The database is marked as invalid by libalpm, which can be fixed by forcing a refresh (assuming the server has caught up and the user realizes what has happened) or with a future update of the repo. Work around this by forcing a repository refresh whenever a database is invalid. Signed-off-by: Sebastian Lackner <sebastian@fds-team.de> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
ae97082e98
commit
5780350751
|
@ -198,6 +198,11 @@ int SYMEXPORT alpm_db_update(int force, alpm_db_t *db)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* force update of invalid databases to fix potential mismatched database/signature */
|
||||||
|
if(db->status & DB_STATUS_INVALID) {
|
||||||
|
force = 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* make sure we have a sane umask */
|
/* make sure we have a sane umask */
|
||||||
oldmask = umask(0022);
|
oldmask = umask(0022);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue