Don't call memcpy with 0 size and NULL pointer(s)

It's undefined behavior, and ubsan flags it.
This commit is contained in:
Brian Silverman
2016-02-05 14:04:22 -05:00
parent c9c9a777d6
commit f4fe375bd1
8 changed files with 18 additions and 9 deletions

View File

@@ -92,7 +92,8 @@ int zmq::options_t::setsockopt (int option_, const void *optval_,
size_t optvallen_)
{
bool is_int = (optvallen_ == sizeof (int));
int value = is_int? *((int *) optval_): 0;
int value = 0;
if (is_int) memcpy(&value, optval_, sizeof (int));
#if defined (ZMQ_ACT_MILITANT)
bool malformed = true; // Did caller pass a bad option value?
#endif