Commit 1d431190 authored by Nir Soffer's avatar Nir Soffer Committed by Martin Sustrik

make sure that reader does not terminate in the middle of a multipart message

parent 2142b891
......@@ -30,6 +30,7 @@ Matus Hamorsky <mhamorsky@gmail.com>
Max Wolf <YIDIEPXGXGPN@spammotel.com>
McClain Looney <m@loonsoft.com>
Mikael Helbo Kjaer <mhk@designtech.dk>
Nir Soffer <nirsof@gmail.com>
Pavel Gushcha <pavimus@gmail.com>
Pavol Malosek <malosek@fastmq.com>
Pieter Hintjens <ph@imatix.com>
......
......@@ -101,6 +101,13 @@ void zmq::xrep_t::terminated (reader_t *pipe_)
for (inpipes_t::iterator it = inpipes.begin (); it != inpipes.end ();
it++) {
if (it->reader == pipe_) {
if (inpipes [current_in].reader == pipe_) {
// A reader is not allowed to terminate in the middle of a
// multipart message.
zmq_assert (!prefetched);
zmq_assert (!more_in);
}
inpipes.erase (it);
if (terminating)
unregister_term_ack ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment