-------------------------------------------------------------------
+Wed Mar 18 11:04:34 CET 2015 - mls@suse.de
+
+- fix bug in dislike_old_versions that could lead to a segfault
+ [bnc#922352]
+- bump version to 0.6.10
+
+-------------------------------------------------------------------
Mon Mar 9 16:42:35 CET 2015 - mls@suse.de
- rework splitprovides handling [bnc#921332]
static void
dislike_old_versions(Pool *pool, Queue *plist)
{
- int i, count = plist->count;
- Id *elements = plist->elements;
- int bad = 0;
+ int i, count;
- for (i = 0; i < count; i++)
+ for (i = 0, count = plist->count; i < count; i++)
{
- Id p = elements[i];
+ Id p = plist->elements[i];
Solvable *s = pool->solvables + p;
Repo *repo = s->repo;
Id q, qq;
+ int bad = 0;
if (!repo || repo == pool->installed)
continue;
{
if (repo->priority > qs->repo->priority)
continue;
- elements[i] = -p;
bad = 1;
break;
}
if (pool_evrcmp(pool, qs->evr, s->evr, EVRCMP_COMPARE) > 0)
{
- elements[i] = -p;
bad = 1;
break;
}
}
- }
- if (!bad)
- return;
- /* now move negative elements to the back */
- for (i = 0; i < count; i++)
- {
- Id p = elements[i];
- if (p >= 0)
+ if (!bad)
continue;
+ /* bring to back */
if (i < plist->count - 1)
{
- memmove(elements + i, elements + i + 1, (plist->count - 1 - i) * sizeof(Id));
- elements[plist->count - 1] = -p;
+ memmove(plist->elements + i, plist->elements + i + 1, (plist->count - 1 - i) * sizeof(Id));
+ plist->elements[plist->count - 1] = p;
}
i--;
count--;