From 444ff9564195223e31d445459009fceb2ae79002 Mon Sep 17 00:00:00 2001 From: Nagy Gabor Date: Fri, 13 Nov 2009 16:42:42 +0100 Subject: Print error on duplicated database entries Some users reported duplicated database entries in /var/lib/pacman/local/, for example, both foo-1.0-1 and foo-2.0-1 subdirectories existed. (Bogus 3rd-party scripts, backup?) In this case pacman reported no error and its behaviour was mysterious. From now on, pacman detects this situation and prints an error message. Signed-off-by: Nagy Gabor Signed-off-by: Dan McGee --- lib/libalpm/be_files.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c index 90e97a55..f624d7cf 100644 --- a/lib/libalpm/be_files.c +++ b/lib/libalpm/be_files.c @@ -262,6 +262,13 @@ int _alpm_db_populate(pmdb_t *db) continue; } + /* duplicated database entries are not allowed */ + if(_alpm_pkg_find(db->pkgcache, pkg->name)) { + _alpm_log(PM_LOG_ERROR, _("duplicated database entry '%s'\n"), pkg->name); + _alpm_pkg_free(pkg); + continue; + } + /* explicitly read with only 'BASE' data, accessors will handle the rest */ if(_alpm_db_read(db, pkg, INFRQ_BASE) == -1) { _alpm_log(PM_LOG_ERROR, _("corrupted database entry '%s'\n"), name); -- cgit v1.2.3-24-g4f1b