[zeromq-dev] zmq assertion error with nmap UDP scan

Frederic Barnabe barnabef at gmail.com
Tue Aug 26 17:06:04 CEST 2014


I'm new to this list (well, I'm new to anything ZeroMQ in fact).  I've
searched for the past couple of days but could not find any information on

My client is using ZeroMQ with the java bindings for epgm communication,
but when they run a UPD port scan on their machine, the application stops
with an assertion error in the logs : Assertion failed: status ==
PGM_IO_STATUS_NORMAL (pgm_socket.cpp:627)

nmap command used : nmap -sU <IP> -v -n -p 5589
epgm is obviously listening on port 5589

By digging in the code, I discovered that OpenPGM returns a status code not
handled by ZMQ.  In this case, nmap sends an empty UDP message and OpenPGM
returns PGM_IO_STATUS_EOF in the pgm_recvmsgv function.  ZMQ then throws an
assertion error and exits the process, which my client doesn't like at all!

By adding PGM_IO_STATUS_EOF in the if statements, I have been able to
prevent the process to close, but I'm wondering if it could brake something
else.  I also had to add the status code in the if statement of line 683 of
pgm_socket.cpp to make it work.

I'm using ZMQ 4.0.4 source code on RedHat 6.4.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140826/a755a8df/attachment.html>

More information about the zeromq-dev mailing list