From 76ced2ac086e8daf0f9de579df353e7a1385215d Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Wed, 26 Jul 2017 11:54:58 +0200 Subject: [PATCH] Related: #1358845 - drop workaround for a GCC bug that has been fixed --- 0001-nghttp2-1.13.0-armv7hl-sigsegv.patch | 99 ----------------------- nghttp2.spec | 9 +-- 2 files changed, 4 insertions(+), 104 deletions(-) delete mode 100644 0001-nghttp2-1.13.0-armv7hl-sigsegv.patch diff --git a/0001-nghttp2-1.13.0-armv7hl-sigsegv.patch b/0001-nghttp2-1.13.0-armv7hl-sigsegv.patch deleted file mode 100644 index d756e42..0000000 --- a/0001-nghttp2-1.13.0-armv7hl-sigsegv.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 9fcf3200342603e9aa86a4bd3ba62f890237a200 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka -Date: Tue, 26 Jul 2016 12:58:46 +0200 -Subject: [PATCH] nghttpx: avoid using std::function to fix crash on armv7hl - -Bug: https://bugzilla.redhat.com/1358845 ---- - src/shrpx_client_handler.cc | 8 ++++---- - src/shrpx_client_handler.h | 6 ++++-- - src/shrpx_http_downstream_connection.cc | 6 +++--- - src/shrpx_http_downstream_connection.h | 5 +++-- - 4 files changed, 14 insertions(+), 11 deletions(-) - -diff --git a/src/shrpx_client_handler.cc b/src/shrpx_client_handler.cc -index 2c9b2a1..890143e 100644 ---- a/src/shrpx_client_handler.cc -+++ b/src/shrpx_client_handler.cc -@@ -650,12 +650,12 @@ int ClientHandler::validate_next_proto() { - return -1; - } - --int ClientHandler::do_read() { return read_(*this); } --int ClientHandler::do_write() { return write_(*this); } -+int ClientHandler::do_read() { return (this->*read_)(); } -+int ClientHandler::do_write() { return (this->*write_)(); } - - int ClientHandler::on_read() { - if (rb_.chunk_avail()) { -- auto rv = on_read_(*this); -+ auto rv = (this->*on_read_)(); - if (rv != 0) { - return rv; - } -@@ -663,7 +663,7 @@ int ClientHandler::on_read() { - conn_.handle_tls_pending_read(); - return 0; - } --int ClientHandler::on_write() { return on_write_(*this); } -+int ClientHandler::on_write() { return (this->*on_write_)(); } - - const StringRef &ClientHandler::get_ipaddr() const { return ipaddr_; } - -diff --git a/src/shrpx_client_handler.h b/src/shrpx_client_handler.h -index bdfdafd..08f42b3 100644 ---- a/src/shrpx_client_handler.h -+++ b/src/shrpx_client_handler.h -@@ -185,8 +185,10 @@ private: - StringRef forwarded_for_; - // lowercased TLS SNI which client sent. - StringRef sni_; -- std::function read_, write_; -- std::function on_read_, on_write_; -+ int (ClientHandler::*read_)(); -+ int (ClientHandler::*write_)(); -+ int (ClientHandler::*on_read_)(); -+ int (ClientHandler::*on_write_)(); - // Address of frontend listening socket - const UpstreamAddr *faddr_; - Worker *worker_; -diff --git a/src/shrpx_http_downstream_connection.cc b/src/shrpx_http_downstream_connection.cc -index 077844c..8a38788 100644 ---- a/src/shrpx_http_downstream_connection.cc -+++ b/src/shrpx_http_downstream_connection.cc -@@ -1464,13 +1464,13 @@ int HttpDownstreamConnection::connected() { - return 0; - } - --int HttpDownstreamConnection::on_read() { return on_read_(*this); } -+int HttpDownstreamConnection::on_read() { return (this->*on_read_)(); } - --int HttpDownstreamConnection::on_write() { return on_write_(*this); } -+int HttpDownstreamConnection::on_write() { return (this->*on_write_)(); } - - void HttpDownstreamConnection::on_upstream_change(Upstream *upstream) {} - --void HttpDownstreamConnection::signal_write() { signal_write_(*this); } -+void HttpDownstreamConnection::signal_write() { (this->*signal_write_)(); } - - int HttpDownstreamConnection::actual_signal_write() { - ev_feed_event(conn_.loop, &conn_.wev, EV_WRITE); -diff --git a/src/shrpx_http_downstream_connection.h b/src/shrpx_http_downstream_connection.h -index 8fad535..0ab430c 100644 ---- a/src/shrpx_http_downstream_connection.h -+++ b/src/shrpx_http_downstream_connection.h -@@ -91,8 +91,9 @@ public: - - private: - Connection conn_; -- std::function on_read_, on_write_, -- signal_write_; -+ int (HttpDownstreamConnection::*on_read_)(); -+ int (HttpDownstreamConnection::*on_write_)(); -+ int (HttpDownstreamConnection::*signal_write_)(); - Worker *worker_; - // nullptr if TLS is not used. - SSL_CTX *ssl_ctx_; --- -2.5.5 - diff --git a/nghttp2.spec b/nghttp2.spec index d28983c..da221f1 100644 --- a/nghttp2.spec +++ b/nghttp2.spec @@ -1,15 +1,12 @@ Summary: Experimental HTTP/2 client, server and proxy Name: nghttp2 Version: 1.24.0 -Release: 1%{?dist} +Release: 2%{?dist} License: MIT Group: Applications/Internet URL: https://nghttp2.org/ Source0: https://github.com/tatsuhiro-t/nghttp2/releases/download/v%{version}/nghttp2-%{version}.tar.xz -# prevent nghttpx from crashing on armv7hl (#1358845) -Patch1: 0001-nghttp2-1.13.0-armv7hl-sigsegv.patch - BuildRequires: CUnit-devel BuildRequires: c-ares-devel BuildRequires: libev-devel @@ -46,7 +43,6 @@ for building applications with libnghttp2. %prep %setup -q -%patch1 -p1 %build @@ -117,6 +113,9 @@ make %{?_smp_mflags} check %changelog +* Wed Jul 26 2017 Kamil Dudka 1.24.0-2 +- drop workaround for a GCC bug that has been fixed (#1358845) + * Sun Jul 02 2017 Kamil Dudka 1.24.0-1 - update to the latest upstream release