From 3a9a510ca873df123a117133c7cb3ebaa711159c Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Wed, 20 Dec 2017 23:22:36 -0500 Subject: do not rely on name hashes for matching 6cfc4757b98e813428d261dbc185e20618ca83a6 was overzealous in attempting to optimize away a call to strcmp based on a comparison of hashes. The call can be skipped if the hashes are different, but different strings could have the same hash. Signed-off-by: Andrew Gregory Signed-off-by: Allan McRae --- lib/libalpm/deps.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index 96f91739..3d3f8ef2 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -698,10 +698,8 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep, } for(j = _alpm_db_get_pkgcache(db); j; j = j->next) { alpm_pkg_t *pkg = j->data; - /* with hash != hash, we can even skip the strcmp() as we know they can't - * possibly be the same string */ - if(pkg->name_hash != dep->name_hash && _alpm_depcmp(pkg, dep) - && !alpm_pkg_find(excluding, pkg->name)) { + if((pkg->name_hash != dep->name_hash || strcmp(pkg->name, dep->name) != 0) + && _alpm_depcmp(pkg, dep) && !alpm_pkg_find(excluding, pkg->name)) { if(alpm_pkg_should_ignore(handle, pkg)) { alpm_question_install_ignorepkg_t question = { .type = ALPM_QUESTION_INSTALL_IGNOREPKG, -- cgit v1.2.3-24-g4f1b