[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-hackers] [PATCH] Fix list->queue data corruption issue
From: |
Peter Bex |
Subject: |
[Chicken-hackers] [PATCH] Fix list->queue data corruption issue |
Date: |
Wed, 2 Oct 2013 23:42:47 +0200 |
User-agent: |
Mutt/1.4.2.3i |
Hi all,
Our beloved paranoid CHICKEN has found the root cause of another
long-standing and hard to debug problem: the bug in the channel egg:
http://tests.call-cc.org/master/linux/x86/2013/10/02/salmonella-report/test/channel.htmlz
When run with paranoid CHICKEN, it tells us nicely where it's going
wrong: the list->queue procedure uses the low-level structure constructor
##sys#make-structure with 3 arguments: the structure type, the list and
the list tail. Unfortunately, make-queue calls ##sys#make-structure
with 4 arguments: the structure type, the list, the list tail and the
queue's length. All accessors assume the queue structure consists of
these 4 slots, and it will segfault or cause other random corruption
when attempting to access the length slot.
The patch fixes this problem and adds a handful of basic tests for
the queue implementation.
I advise we add this patch to the stability branch as well.
Cheers,
Peter
--
http://www.more-magic.net
0001-Fix-data-corruption-problem-in-list-queue-and-add-a-.patch
Description: Text document
- [Chicken-hackers] [PATCH] Fix list->queue data corruption issue,
Peter Bex <=