Fix the message decoder to ignore reserved flags.

Failing to clear the reserved flags, the decoder may produce
messages with 'identity' and 'shared' flags set.
This unintended modification of message flags can lead to memory
errors or asserion failures.

Fixes issue #309
This commit is contained in:
Martin Hurton 2012-06-09 12:52:26 +02:00
parent b0792ec78a
commit 796212a985

View File

@ -145,7 +145,7 @@ bool zmq::decoder_t::eight_byte_size_ready ()
bool zmq::decoder_t::flags_ready ()
{
// Store the flags from the wire into the message structure.
in_progress.set_flags (tmpbuf [0]);
in_progress.set_flags (tmpbuf [0] & msg_t::more);
next_step (in_progress.data (), in_progress.size (),
&decoder_t::message_ready);