[zeromq-dev] How to use zmq_getsockopt with option ZMQ_IDENTITY_FD

Peter Kleiweg pkleiweg at xs4all.nl
Thu Jan 8 15:28:20 CET 2015

Thomas Rodgers schreef op de 8e dag van de louwmaand van het jaar 2015:

> This is an oddball API choice (and there is a bug in the implementation),
> in that option_value* is being used as both and input and an output
> parameter.
> The size you pass in must be be *at least* sizeof(fd_t) bytes, because it
> will overwrite the supplied identity string with the resulting file
> descriptor. The bug is, it does not check to see that the size of supplied
> output is sufficient to hold sizeof(fd_t), so bad things (stack/heap
> corruption) would happen if you actually passed option_len = 2.

But option_len is used for retrieving the identity string:

    blob_t identity= blob_t((unsigned char*)optval_,*optvallen_); 

Won't I get a wrong 'blob' if I use option_len = 8?

> On Thu, Jan 8, 2015 at 7:26 AM, Peter Kleiweg <pkleiweg at xs4all.nl> wrote:
> >
> > Suppose the identity string is only two bytes long, I pad with
> > zeros to get a string of eight bytes. What should the value of
> > option_len be, 2 or 8?

Peter Kleiweg

More information about the zeromq-dev mailing list