parent
689cc9f6d7
commit
6a4c511715
@ -0,0 +1,27 @@
|
|||||||
|
From 25a50ca0d5d3ea076c63c23692e4cb9868bfb55d Mon Sep 17 00:00:00 2001
|
||||||
|
From: KIU Shueng Chuan <nixchuan@gmail.com>
|
||||||
|
Date: Tue, 8 Sep 2015 17:26:31 +0800
|
||||||
|
Subject: [PATCH] avoid dereferencing uint32_t on unaligned address
|
||||||
|
|
||||||
|
---
|
||||||
|
src/socket_base.cpp | 21 +++++----------------
|
||||||
|
1 file changed, 5 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/socket_base.cpp b/src/socket_base.cpp
|
||||||
|
index a980015fc..ea178a868 100644
|
||||||
|
--- a/src/socket_base.cpp
|
||||||
|
+++ b/src/socket_base.cpp
|
||||||
|
@@ -1361,8 +1361,11 @@ void zmq::socket_base_t::monitor_event (int event_, int value_, const std::strin
|
||||||
|
zmq_msg_t msg;
|
||||||
|
zmq_msg_init_size (&msg, 6);
|
||||||
|
uint8_t *data = (uint8_t *) zmq_msg_data (&msg);
|
||||||
|
- *(uint16_t *) (data + 0) = (uint16_t) event_;
|
||||||
|
- *(uint32_t *) (data + 2) = (uint32_t) value_;
|
||||||
|
+ // Avoid dereferencing uint32_t on unaligned address
|
||||||
|
+ uint16_t event = (uint16_t) event_;
|
||||||
|
+ uint32_t value = (uint32_t) value_;
|
||||||
|
+ memcpy (data + 0, &event, sizeof(event));
|
||||||
|
+ memcpy (data + 2, &value, sizeof(value));
|
||||||
|
zmq_sendmsg (monitor_socket, &msg, ZMQ_SNDMORE);
|
||||||
|
|
||||||
|
// Send address in second frame
|
Loading…
Reference in new issue