ike-sa-manager: Safely access the RNG instance with an rwlock
authorTobias Brunner <tobias@strongswan.org>
Wed, 8 Jul 2015 13:28:46 +0000 (15:28 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 14 Jul 2015 13:25:23 +0000 (15:25 +0200)
commit390ae7a2c2f899122e722241cb261f53dfc81b9a
tree9b7b56e176feed4d86d8b85b9892ed1ce109e34e
parent856ea64129cdc7ee56969524d7abaaae08c22c6a
ike-sa-manager: Safely access the RNG instance with an rwlock

Threads might still be allocating SPIs (e.g. triggered by an acquire or
an inbound message) while the main thread calls flush().  If there is a
context switch right after such a thread successfully checked this->rng
in get_spi() and the main thread destroys the RNG instance right then,
that worker thread will cause a segmentation fault when it continues and
attempts to call get_bytes().

Fixes #1014.
src/libcharon/sa/ike_sa_manager.c