diff options
-rw-r--r-- | src/options.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/options.cpp b/src/options.cpp index f6b24d6..dcbb51d 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -53,7 +53,7 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, return 0; case ZMQ_SWAP: - if (optvallen_ != sizeof (int64_t)) { + if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) { errno = EINVAL; return -1; } @@ -82,7 +82,7 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, return 0; case ZMQ_RATE: - if (optvallen_ != sizeof (int64_t)) { + if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) { errno = EINVAL; return -1; } @@ -90,7 +90,7 @@ int zmq::options_t::setsockopt (int option_, const void *optval_, return 0; case ZMQ_RECOVERY_IVL: - if (optvallen_ != sizeof (int64_t)) { + if (optvallen_ != sizeof (int64_t) || *((int64_t*) optval_) < 0) { errno = EINVAL; return -1; } |