Problem: UB in message_t constructor

Solution: Add check to guard against passing null to memcpy
This commit is contained in:
Gudmundur Adalsteinsson 2020-04-05 20:25:00 +00:00
parent a3e5b54c3c
commit 1793a5b586

View File

@ -365,7 +365,12 @@ class message_t
int rc = zmq_msg_init_size(&msg, size_);
if (rc != 0)
throw error_t();
memcpy(data(), data_, size_);
if (size_)
{
// this constructor allows (nullptr, 0),
// memcpy with a null pointer is UB
memcpy(data(), data_, size_);
}
}
message_t(void *data_, size_t size_, free_fn *ffn_, void *hint_ = ZMQ_NULLPTR)