Fixed use-after-free bug in VyukovMPMCCycleQueue internal buffer.
authorkhizmax <libcds.dev@gmail.com>
Sun, 5 Jun 2016 06:03:44 +0000 (09:03 +0300)
committerkhizmax <libcds.dev@gmail.com>
Sun, 5 Jun 2016 06:03:44 +0000 (09:03 +0300)
commit91dbaa8005237a46dc5993083833df1e7f4fc047
tree17cc93bd6919aaedd2f57eb1e129e0e0f2329194
parent8a05c794447f5898d8451f09c60e12dd8501fdb3
Fixed use-after-free bug in VyukovMPMCCycleQueue internal buffer.
To prevent this bug the queue uses an uninitialized buffer now.

cds::opt::buffer option is divided to initialized
(cds::opt::v::initialized_dynamic_buffer, cds::opt::v::initialized_static_buffer)
and uninitialized (cds::opt::v::uninitialized_dynamic_buffer, cds::opt::v::uninitialized_static_buffer)
ones. The old cds::opt::v::dynamic_buffer and cds::opt::v::static_buffer classes
are removed.
32 files changed:
cds/container/mspriority_queue.h
cds/container/treiber_stack.h
cds/container/tsigas_cycle_queue.h
cds/container/vyukov_mpmc_cycle_queue.h
cds/intrusive/mspriority_queue.h
cds/intrusive/striped_set.h
cds/intrusive/striped_set/boost_unordered_set.h
cds/intrusive/treiber_stack.h
cds/intrusive/tsigas_cycle_queue.h
cds/intrusive/vyukov_mpmc_cycle_queue.h
cds/memory/michael/allocator.h
cds/memory/vyukov_queue_pool.h
cds/opt/buffer.h
change.log
test/stress/framework/ellen_bintree_update_desc_pool.h
test/stress/pqueue/pqueue_type.h
test/stress/queue/intrusive_queue_type.h
test/stress/queue/queue_type.h
test/stress/stack/intrusive_stack_type.h
test/stress/stack/stack_type.h
test/unit/pqueue/intrusive_mspqueue.cpp
test/unit/pqueue/mspqueue.cpp
test/unit/queue/intrusive_tsigas_queue.cpp
test/unit/queue/intrusive_vyukov_queue.cpp
test/unit/queue/tsigas_queue.cpp
test/unit/queue/vyukov_mpmc_queue.cpp
test/unit/stack/intrusive_treiber_stack_dhp.cpp
test/unit/stack/intrusive_treiber_stack_hp.cpp
test/unit/stack/treiber_stack_dhp.cpp
test/unit/stack/treiber_stack_hp.cpp
test/unit/striped-set/intrusive_boost_unordered_set.cpp
test/unit/tree/test_ellen_bintree_update_desc_pool.h