summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options.cpp6
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;
}