diff options
| -rw-r--r-- | src/socket_base.cpp | 4 | ||||
| -rw-r--r-- | src/zmq_listener.hpp | 3 | 
2 files changed, 4 insertions, 3 deletions
| diff --git a/src/socket_base.cpp b/src/socket_base.cpp index f5ba441..720e8cd 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -100,8 +100,10 @@ int zmq::socket_base_t::bind (const char *addr_)              choose_io_thread (options.affinity), this, options);          zmq_assert (listener);          int rc = listener->set_address (addr_type.c_str(), addr_args.c_str ()); -        if (rc != 0) +        if (rc != 0) { +            delete listener;              return -1; +        }          send_plug (listener);          send_own (this, listener); diff --git a/src/zmq_listener.hpp b/src/zmq_listener.hpp index c82a280..c990b02 100644 --- a/src/zmq_listener.hpp +++ b/src/zmq_listener.hpp @@ -35,14 +35,13 @@ namespace zmq          zmq_listener_t (class io_thread_t *parent_, socket_base_t *owner_,              const options_t &options_); +        ~zmq_listener_t ();          //  Set address to listen on.          int set_address (const char* protocol_, const char *addr_);      private: -        ~zmq_listener_t (); -          //  Handlers for incoming commands.          void process_plug ();          void process_unplug (); | 
