[zeromq-dev] bug in kvmsg.c (zguide example)
Viet Hoang (Quant Edge)
viet.hoang at quant-edge.com
Sat Apr 21 09:13:51 CEST 2012
Hello,
There is a bug in kvmsg_dup function which will crash the broker
occasionally. We have a fix for it as below
// ---------------------------------------------------------------------
// Create duplicate of kvmsg
kvmsg_t *
kvmsg_dup (kvmsg_t *self)
{
kvmsg_t *kvmsg = kvmsg_new (0);
char *prop;
int frame_nbr;
for (frame_nbr = 0; frame_nbr < KVMSG_FRAMES; frame_nbr++) {
if (self->present [frame_nbr]) {
zmq_msg_t *src = &self->frame [frame_nbr];
zmq_msg_t *dst = &kvmsg->frame [frame_nbr];
zmq_msg_init_size (dst, zmq_msg_size (src));
memcpy (zmq_msg_data (dst),
zmq_msg_data (src), zmq_msg_size (src));
kvmsg->present [frame_nbr] = 1;
}
}
kvmsg->props_size = zlist_size (self->props);
prop = (char *) zlist_first (self->props);
while (prop) {
zlist_append (kvmsg->props, strdup (prop));
prop = (char *) zlist_next (self->props);
}
return kvmsg;
}
Cheers,
Viet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20120421/021091c0/attachment.htm>
More information about the zeromq-dev
mailing list