Fixes a segfault when trying to remove an assumeinstalled option without a version. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> --- lib/libalpm/handle.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 4915d0b..1be2484 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -606,10 +606,21 @@ static int assumeinstalled_cmp(const void *d1, const void *d2) const alpm_depend_t *dep1 = d1; const alpm_depend_t *dep2 = d2; - if(strcmp(dep1->name, dep2->name) == 0 && strcmp(dep1->version, dep2->version) == 0) { + if(dep1->name_hash != dep2->name_hash + || strcmp(dep1->name, dep2->name) != 0) { + return -1; + } + + if(dep1->version && dep2->version + && strcmp(dep1->version, dep2->version) == 0) { return 0; } + if(dep1->version == NULL && dep2->version == NULL) { + return 0; + } + + return -1; } -- 2.4.6