• Luca Boccassi's avatar
    Problem: fd leak in tweetnacl with one ctx per thread · e015a0f8
    Luca Boccassi authored
    Solution: add a crypto [de-]initialiser, refcounted and serialised
    through critical sections.
    This is necessary as utility APIs such as zmq_curve_keypair also
    call into the sodium/tweetnacl libraries and need the initialisation
    outside of the zmq context.
    Also the libsodium documentation explicitly says that sodium_init
    must not be called concurrently from multiple threads, which could
    have happened until now. Also the randombytes_close function does
    not appear to be thread safe either.
    This change guarantees that the library is initialised only once at
    any given time across the whole program.
    Fixes #2632
    e015a0f8
Name
Last commit
Last update
..
address.cpp Loading commit data...
address.hpp Loading commit data...
array.hpp Loading commit data...
atomic_counter.hpp Loading commit data...
atomic_ptr.hpp Loading commit data...
blob.hpp Loading commit data...
client.cpp Loading commit data...
client.hpp Loading commit data...
clock.cpp Loading commit data...
clock.hpp Loading commit data...
command.hpp Loading commit data...
condition_variable.hpp Loading commit data...
config.hpp Loading commit data...
ctx.cpp Loading commit data...
ctx.hpp Loading commit data...
curve_client.cpp Loading commit data...
curve_client.hpp Loading commit data...
curve_server.cpp Loading commit data...
curve_server.hpp Loading commit data...
dbuffer.hpp Loading commit data...
dealer.cpp Loading commit data...
dealer.hpp Loading commit data...
decoder.hpp Loading commit data...
decoder_allocators.cpp Loading commit data...
decoder_allocators.hpp Loading commit data...
devpoll.cpp Loading commit data...
devpoll.hpp Loading commit data...
dgram.cpp Loading commit data...
dgram.hpp Loading commit data...
dish.cpp Loading commit data...
dish.hpp Loading commit data...
dist.cpp Loading commit data...
dist.hpp Loading commit data...
encoder.hpp Loading commit data...
epoll.cpp Loading commit data...
epoll.hpp Loading commit data...
err.cpp Loading commit data...
err.hpp Loading commit data...
fd.hpp Loading commit data...
fq.cpp Loading commit data...
fq.hpp Loading commit data...
gather.cpp Loading commit data...
gather.hpp Loading commit data...
gssapi_client.cpp Loading commit data...
gssapi_client.hpp Loading commit data...
gssapi_mechanism_base.cpp Loading commit data...
gssapi_mechanism_base.hpp Loading commit data...
gssapi_server.cpp Loading commit data...
gssapi_server.hpp Loading commit data...
i_decoder.hpp Loading commit data...
i_encoder.hpp Loading commit data...
i_engine.hpp Loading commit data...
i_mailbox.hpp Loading commit data...
i_poll_events.hpp Loading commit data...
io_object.cpp Loading commit data...
io_object.hpp Loading commit data...
io_thread.cpp Loading commit data...
io_thread.hpp Loading commit data...
ip.cpp Loading commit data...
ip.hpp Loading commit data...
ipc_address.cpp Loading commit data...
ipc_address.hpp Loading commit data...
ipc_connecter.cpp Loading commit data...
ipc_connecter.hpp Loading commit data...
ipc_listener.cpp Loading commit data...
ipc_listener.hpp Loading commit data...
kqueue.cpp Loading commit data...
kqueue.hpp Loading commit data...
lb.cpp Loading commit data...
lb.hpp Loading commit data...
libzmq.pc.cmake.in Loading commit data...
libzmq.pc.in Loading commit data...
libzmq.vers Loading commit data...
likely.hpp Loading commit data...
macros.hpp Loading commit data...
mailbox.cpp Loading commit data...
mailbox.hpp Loading commit data...
mailbox_safe.cpp Loading commit data...
mailbox_safe.hpp Loading commit data...
mechanism.cpp Loading commit data...
mechanism.hpp Loading commit data...
metadata.cpp Loading commit data...
metadata.hpp Loading commit data...
msg.cpp Loading commit data...
msg.hpp Loading commit data...
mtrie.cpp Loading commit data...
mtrie.hpp Loading commit data...
mutex.hpp Loading commit data...
norm_engine.cpp Loading commit data...
norm_engine.hpp Loading commit data...
null_mechanism.cpp Loading commit data...
null_mechanism.hpp Loading commit data...
object.cpp Loading commit data...
object.hpp Loading commit data...
options.cpp Loading commit data...
options.hpp Loading commit data...
own.cpp Loading commit data...
own.hpp Loading commit data...
pair.cpp Loading commit data...
pair.hpp Loading commit data...
pgm_receiver.cpp Loading commit data...
pgm_receiver.hpp Loading commit data...
pgm_sender.cpp Loading commit data...
pgm_sender.hpp Loading commit data...
pgm_socket.cpp Loading commit data...
pgm_socket.hpp Loading commit data...
pipe.cpp Loading commit data...
pipe.hpp Loading commit data...
plain_client.cpp Loading commit data...
plain_client.hpp Loading commit data...
plain_server.cpp Loading commit data...
plain_server.hpp Loading commit data...
poll.cpp Loading commit data...
poll.hpp Loading commit data...
poller.hpp Loading commit data...
poller_base.cpp Loading commit data...
poller_base.hpp Loading commit data...
pollset.cpp Loading commit data...
pollset.hpp Loading commit data...
precompiled.cpp Loading commit data...
precompiled.hpp Loading commit data...
proxy.cpp Loading commit data...
proxy.hpp Loading commit data...
pub.cpp Loading commit data...
pub.hpp Loading commit data...
pull.cpp Loading commit data...
pull.hpp Loading commit data...
push.cpp Loading commit data...
push.hpp Loading commit data...
radio.cpp Loading commit data...
radio.hpp Loading commit data...
random.cpp Loading commit data...
random.hpp Loading commit data...
raw_decoder.cpp Loading commit data...
raw_decoder.hpp Loading commit data...
raw_encoder.cpp Loading commit data...
raw_encoder.hpp Loading commit data...
reaper.cpp Loading commit data...
reaper.hpp Loading commit data...
rep.cpp Loading commit data...
rep.hpp Loading commit data...
req.cpp Loading commit data...
req.hpp Loading commit data...
router.cpp Loading commit data...
router.hpp Loading commit data...
scatter.cpp Loading commit data...
scatter.hpp Loading commit data...
select.cpp Loading commit data...
select.hpp Loading commit data...
server.cpp Loading commit data...
server.hpp Loading commit data...
session_base.cpp Loading commit data...
session_base.hpp Loading commit data...
signaler.cpp Loading commit data...
signaler.hpp Loading commit data...
socket_base.cpp Loading commit data...
socket_base.hpp Loading commit data...
socket_poller.cpp Loading commit data...
socket_poller.hpp Loading commit data...
socks.cpp Loading commit data...
socks.hpp Loading commit data...
socks_connecter.cpp Loading commit data...
socks_connecter.hpp Loading commit data...
stdint.hpp Loading commit data...
stream.cpp Loading commit data...
stream.hpp Loading commit data...
stream_engine.cpp Loading commit data...
stream_engine.hpp Loading commit data...
sub.cpp Loading commit data...
sub.hpp Loading commit data...
tcp.cpp Loading commit data...
tcp.hpp Loading commit data...
tcp_address.cpp Loading commit data...
tcp_address.hpp Loading commit data...
tcp_connecter.cpp Loading commit data...
tcp_connecter.hpp Loading commit data...
tcp_listener.cpp Loading commit data...
tcp_listener.hpp Loading commit data...
thread.cpp Loading commit data...
thread.hpp Loading commit data...
timers.cpp Loading commit data...
timers.hpp Loading commit data...
tipc_address.cpp Loading commit data...
tipc_address.hpp Loading commit data...
tipc_connecter.cpp Loading commit data...
tipc_connecter.hpp Loading commit data...
tipc_listener.cpp Loading commit data...
tipc_listener.hpp Loading commit data...
trie.cpp Loading commit data...
trie.hpp Loading commit data...
tweetnacl.c Loading commit data...
tweetnacl.h Loading commit data...
udp_address.cpp Loading commit data...
udp_address.hpp Loading commit data...
udp_engine.cpp Loading commit data...
udp_engine.hpp Loading commit data...
v1_decoder.cpp Loading commit data...
v1_decoder.hpp Loading commit data...
v1_encoder.cpp Loading commit data...
v1_encoder.hpp Loading commit data...
v2_decoder.cpp Loading commit data...
v2_decoder.hpp Loading commit data...
v2_encoder.cpp Loading commit data...
v2_encoder.hpp Loading commit data...
v2_protocol.hpp Loading commit data...
version.rc.in Loading commit data...
vmci.cpp Loading commit data...
vmci.hpp Loading commit data...
vmci_address.cpp Loading commit data...
vmci_address.hpp Loading commit data...
vmci_connecter.cpp Loading commit data...
vmci_connecter.hpp Loading commit data...
vmci_listener.cpp Loading commit data...
vmci_listener.hpp Loading commit data...
windows.hpp Loading commit data...
wire.hpp Loading commit data...
xpub.cpp Loading commit data...
xpub.hpp Loading commit data...
xsub.cpp Loading commit data...
xsub.hpp Loading commit data...
ypipe.hpp Loading commit data...
ypipe_base.hpp Loading commit data...
ypipe_conflate.hpp Loading commit data...
yqueue.hpp Loading commit data...
zmq.cpp Loading commit data...
zmq_draft.h Loading commit data...
zmq_utils.cpp Loading commit data...