summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefw <stefw@localhost>2009-04-02 03:30:07 +0000
committerstefw <stefw@localhost>2009-04-02 03:30:07 +0000
commitaf0a2846fa83c7b07b843aea12ec194c4eb30860 (patch)
treea694fcfafae86d6de175339ea1fcef9070f11161
parent3006b0e48c276cecc32728f5ebfa525959a9078e (diff)
downloadgnome-keyring-af0a2846fa83c7b07b843aea12ec194c4eb30860.tar.gz
Fix problem where freed memory is not inserted into the unused ring properly.
This caused enless loops. Should fix bug #575247 svn path=/trunk/; revision=1708
-rw-r--r--ChangeLog4
-rw-r--r--egg/egg-secure-memory.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ff7c5130..0c8248f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,10 @@
* egg/egg-secure-memory.c:
* egg/egg-secure-memory.h: Add validator which walks the
secure memory heap and checks for inconsistencies.
+
+ * egg/egg-secure-memory.c: Fix problem where freed memory
+ is not inserted into the unused ring properly. This caused
+ enless loops. Should fix bug #575247
2009-03-20 Stef Walter <stef@memberwebs.com>
diff --git a/egg/egg-secure-memory.c b/egg/egg-secure-memory.c
index a2153645..ba0cf5ce 100644
--- a/egg/egg-secure-memory.c
+++ b/egg/egg-secure-memory.c
@@ -341,7 +341,7 @@ sec_insert_cell_ring (Cell **ring, Cell *cell)
/* Insert back into the mix of available memory */
if (*ring) {
cell->next = (*ring)->next;
- cell->prev = (*ring)->prev;
+ cell->prev = *ring;
cell->next->prev = cell;
cell->prev->next = cell;
} else {