Backport another patch to fix s390x.

epel9
Elliott Sales de Andrade 6 years ago
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

@ -11,6 +11,7 @@ Source0: https://github.com/zeromq/zeromq4-1/releases/download/v%{version
Source1: https://raw.githubusercontent.com/zeromq/cppzmq/master/zmq.hpp
Source2: https://raw.githubusercontent.com/zeromq/cppzmq/master/LICENSE
Patch0001: https://github.com/zeromq/libzmq/pull/1260.patch
Patch0002: https://github.com/zeromq/libzmq/pull/1574.patch
BuildRequires: autoconf
BuildRequires: automake
@ -86,7 +87,8 @@ rm %{buildroot}%{_libdir}/libzmq.la
%check
make check V=1
make check V=1 || ( cat test-suite.log && exit 1 )
%ldconfig_scriptlets
@ -110,7 +112,7 @@ make check V=1
%changelog
* Mon Jan 21 2019 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 4.1.6-11
- Backport patch to fix test failures in build
- Backport patches to fix test failures in build
- Cleanup spec a little
- Use explicit soname version in file list

Loading…
Cancel
Save