diff options
Diffstat (limited to 'trunk/src/prelink.c')
-rw-r--r-- | trunk/src/prelink.c | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/trunk/src/prelink.c b/trunk/src/prelink.c index 9b1998c..0d113b7 100644 --- a/trunk/src/prelink.c +++ b/trunk/src/prelink.c @@ -813,35 +813,39 @@ free_info (struct prelink_info *info) if (info->conflicts) { for (i = 0; i < info->ent->ndepends + 1; ++i) - if (info->conflicts[i].hash == &info->conflicts[i].first) - { - struct prelink_conflict *c = info->conflicts[i].first; - void *f; - - while (c != NULL) - { - f = c; - c = c->next; - free (f); - } - } - else - { - int j; - for (j = 0; j < 251; j++) - { - struct prelink_conflict *c = info->conflicts[i].hash[j]; - void *f; + { + if (info->conflicts[i].hash == &info->conflicts[i].first) + { + struct prelink_conflict *c = info->conflicts[i].first; + void *f; - while (c != NULL) - { - f = c; - c = c->next; - free (f); - } - } - free (info->conflicts[i].hash); - } + while (c != NULL) + { + f = c; + c = c->next; + free (f); + } + } + else + { + int j; + for (j = 0; j < 251; j++) + { + struct prelink_conflict *c = info->conflicts[i].hash[j]; + void *f; + + while (c != NULL) + { + f = c; + c = c->next; + free (f); + } + } + free (info->conflicts[i].hash); + } + if (info->conflicts[i].hash2 != NULL) + free (info->conflicts[i].hash2); + } free (info->conflicts); } if (info->sonames) |