From 94a523702f26e46203114b4f2d67c7f53ac04020 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Wed, 20 Aug 2008 00:53:38 +0000 Subject: [PATCH] Fix an assert caused by faulty sort-queue management. sq.h - sq_items_release(): When clearing the items_inuse array, ensure that all of the memory is cleared. items_inuse is a uint array, not a byte array. Author: Mark Wutzke git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1655 fd59a12c-fef9-0310-b244-a6a79926bd2f --- include/corosync/sq.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/corosync/sq.h b/include/corosync/sq.h index cd64975e..ac65f09c 100644 --- a/include/corosync/sq.h +++ b/include/corosync/sq.h @@ -277,7 +277,7 @@ static inline void sq_items_release (struct sq *sq, unsigned int seqid) if ((oldhead + seqid - sq->head_seqid + 1) > sq->size) { // printf ("releasing %d for %d\n", oldhead, sq->size - oldhead); // printf ("releasing %d for %d\n", 0, sq->head); - memset (&sq->items_inuse[oldhead], 0, sq->size - oldhead); + memset (&sq->items_inuse[oldhead], 0, (sq->size - oldhead) * sizeof (unsigned int)); memset (sq->items_inuse, 0, sq->head * sizeof (unsigned int)); } else { // printf ("releasing %d for %d\n", oldhead, seqid - sq->head_seqid + 1);