When running for a longer period of time, an error message shows.
Expected vs actual behavior
After keeping crosshair watch ./foobar active for an extended period of time (> 60 min) I get the following messages:
malloc(): unsorted double linked list corrupted
malloc(): unsorted double linked list corrupted
corrupted double-linked listles.
corrupted double-linked listles.
malloc(): unsorted double linked list corrupted
corrupted double-linked listles.
malloc(): unsorted double linked list corrupted
corrupted double-linked listles.
corrupted double-linked listles.
corrupted double-linked listles.
malloc(): unsorted double linked list corrupted
malloc(): unsorted double linked list corrupted
corrupted double-linked listles.
To Reproduce
Leave crosshair watch active for an while (> 60 min). What might also influence this, is the amount of files in the project; I've got about 486 files under watch.
Thanks for this report! I haven't yet attempted to reproduce, but I strongly suspect that this is a Z3 issue. (or possibly CrossHair is using it incorrectly) CrossHair is pinned to a specific Z3 version and is due for an update (furthermore, I know that they've been responding to a lot of fuzz-testing-based-reports), so upgrading Z3 has a chance of helping. More soon!
CrossHair is now on the lastest official release of z3; leaving this open for folks to notice and report if they see it in the current version.
A note to self: possibly we should sometimes run Z3_reset_memory as described here.