Hello community,

here is the log from the commit of package grpc for openSUSE:Factory checked in 
at 2018-01-31 19:52:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grpc (Old)
 and      /work/SRC/openSUSE:Factory/.grpc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grpc"

Wed Jan 31 19:52:54 2018 rev:5 rq:571240 version:1.8.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/grpc/grpc.changes        2018-01-28 
20:33:29.430701468 +0100
+++ /work/SRC/openSUSE:Factory/.grpc.new/grpc.changes   2018-01-31 
19:53:27.325114109 +0100
@@ -1,0 +2,6 @@
+Tue Jan 30 21:44:51 UTC 2018 - [email protected]
+
+- Update to new upstream release 1.8.6
+  * Fix server segfault on invalid HTTP/2
+
+-------------------------------------------------------------------

Old:
----
  v1.8.5.tar.gz

New:
----
  v1.8.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ grpc.spec ++++++
--- /var/tmp/diff_new_pack.qkdBVV/_old  2018-01-31 19:53:33.888808870 +0100
+++ /var/tmp/diff_new_pack.qkdBVV/_new  2018-01-31 19:53:33.892808684 +0100
@@ -16,9 +16,9 @@
 #
 
 
-%define lname libgrpc-1_8_5
+%define lname libgrpc-1_8_6
 Name:           grpc
-Version:        1.8.5
+Version:        1.8.6
 Release:        0
 Summary:        HTTP/2-based Remote Procedure Call implementation
 License:        Apache-2.0

++++++ v1.8.5.tar.gz -> v1.8.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/BUILD new/grpc-1.8.6/BUILD
--- old/grpc-1.8.5/BUILD        2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/BUILD        2018-01-27 01:42:38.000000000 +0100
@@ -43,7 +43,7 @@
 
 core_version = "5.0.0"
 
-version = "1.8.5"
+version = "1.8.6"
 
 GPR_PUBLIC_HDRS = [
     "include/grpc/support/alloc.h",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/CMakeLists.txt 
new/grpc-1.8.6/CMakeLists.txt
--- old/grpc-1.8.5/CMakeLists.txt       2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/CMakeLists.txt       2018-01-27 01:42:38.000000000 +0100
@@ -24,7 +24,7 @@
 cmake_minimum_required(VERSION 2.8)
 
 set(PACKAGE_NAME      "grpc")
-set(PACKAGE_VERSION   "1.8.5")
+set(PACKAGE_VERSION   "1.8.6")
 set(PACKAGE_STRING    "${PACKAGE_NAME} ${PACKAGE_VERSION}")
 set(PACKAGE_TARNAME   "${PACKAGE_NAME}-${PACKAGE_VERSION}")
 set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/";)
@@ -555,6 +555,7 @@
 add_dependencies(buildtests_c public_headers_must_be_c89)
 add_dependencies(buildtests_c badreq_bad_client_test)
 add_dependencies(buildtests_c connection_prefix_bad_client_test)
+add_dependencies(buildtests_c duplicate_header_bad_client_test)
 add_dependencies(buildtests_c head_of_line_blocking_bad_client_test)
 add_dependencies(buildtests_c headers_bad_client_test)
 add_dependencies(buildtests_c initial_settings_frame_bad_client_test)
@@ -12883,6 +12884,37 @@
   ${_gRPC_SSL_LIBRARIES}
   ${_gRPC_ALLTARGETS_LIBRARIES}
   bad_client_test
+  grpc_test_util_unsecure
+  grpc_unsecure
+  gpr_test_util
+  gpr
+)
+
+endif (gRPC_BUILD_TESTS)
+if (gRPC_BUILD_TESTS)
+
+add_executable(duplicate_header_bad_client_test
+  test/core/bad_client/tests/duplicate_header.cc
+)
+
+
+target_include_directories(duplicate_header_bad_client_test
+  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+  PRIVATE ${BORINGSSL_ROOT_DIR}/include
+  PRIVATE ${PROTOBUF_ROOT_DIR}/src
+  PRIVATE ${BENCHMARK_ROOT_DIR}/include
+  PRIVATE ${ZLIB_ROOT_DIR}
+  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/zlib
+  PRIVATE ${CARES_INCLUDE_DIR}
+  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/cares/cares
+  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/third_party/gflags/include
+)
+
+target_link_libraries(duplicate_header_bad_client_test
+  ${_gRPC_SSL_LIBRARIES}
+  ${_gRPC_ALLTARGETS_LIBRARIES}
+  bad_client_test
   grpc_test_util_unsecure
   grpc_unsecure
   gpr_test_util
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/Makefile new/grpc-1.8.6/Makefile
--- old/grpc-1.8.5/Makefile     2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/Makefile     2018-01-27 01:42:38.000000000 +0100
@@ -412,8 +412,8 @@
 endif
 
 CORE_VERSION = 5.0.0
-CPP_VERSION = 1.8.5
-CSHARP_VERSION = 1.8.5
+CPP_VERSION = 1.8.6
+CSHARP_VERSION = 1.8.6
 
 CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
 CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -1223,6 +1223,7 @@
 boringssl_v3name_test: $(BINDIR)/$(CONFIG)/boringssl_v3name_test
 badreq_bad_client_test: $(BINDIR)/$(CONFIG)/badreq_bad_client_test
 connection_prefix_bad_client_test: 
$(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test
+duplicate_header_bad_client_test: 
$(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test
 head_of_line_blocking_bad_client_test: 
$(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test
 headers_bad_client_test: $(BINDIR)/$(CONFIG)/headers_bad_client_test
 initial_settings_frame_bad_client_test: 
$(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
@@ -1476,6 +1477,7 @@
   $(BINDIR)/$(CONFIG)/public_headers_must_be_c89 \
   $(BINDIR)/$(CONFIG)/badreq_bad_client_test \
   $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test \
+  $(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test \
   $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test \
   $(BINDIR)/$(CONFIG)/headers_bad_client_test \
   $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test \
@@ -2004,6 +2006,8 @@
        $(Q) $(BINDIR)/$(CONFIG)/badreq_bad_client_test || ( echo test 
badreq_bad_client_test failed ; exit 1 )
        $(E) "[RUN]     Testing connection_prefix_bad_client_test"
        $(Q) $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test || ( echo 
test connection_prefix_bad_client_test failed ; exit 1 )
+       $(E) "[RUN]     Testing duplicate_header_bad_client_test"
+       $(Q) $(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test || ( echo 
test duplicate_header_bad_client_test failed ; exit 1 )
        $(E) "[RUN]     Testing head_of_line_blocking_bad_client_test"
        $(Q) $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test || ( 
echo test head_of_line_blocking_bad_client_test failed ; exit 1 )
        $(E) "[RUN]     Testing headers_bad_client_test"
@@ -18478,6 +18482,26 @@
 endif
 
 
+DUPLICATE_HEADER_BAD_CLIENT_TEST_SRC = \
+    test/core/bad_client/tests/duplicate_header.cc \
+
+DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, 
$(addsuffix .o, $(basename $(DUPLICATE_HEADER_BAD_CLIENT_TEST_SRC))))
+
+
+$(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test: 
$(DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS) 
$(LIBDIR)/$(CONFIG)/libbad_client_test.a 
$(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a 
$(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a 
$(LIBDIR)/$(CONFIG)/libgpr.a
+       $(E) "[LD]      Linking $@"
+       $(Q) mkdir -p `dirname $@`
+       $(Q) $(LD) $(LDFLAGS) $(DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS) 
$(LIBDIR)/$(CONFIG)/libbad_client_test.a 
$(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a 
$(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a 
$(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o 
$(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test
+
+$(OBJDIR)/$(CONFIG)/test/core/bad_client/tests/duplicate_header.o:  
$(LIBDIR)/$(CONFIG)/libbad_client_test.a 
$(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a 
$(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a 
$(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_duplicate_header_bad_client_test: 
$(DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_DEPS),true)
+-include $(DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS:.o=.dep)
+endif
+
+
 HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_SRC = \
     test/core/bad_client/tests/head_of_line_blocking.cc \
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/build.yaml new/grpc-1.8.6/build.yaml
--- old/grpc-1.8.5/build.yaml   2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/build.yaml   2018-01-27 01:42:38.000000000 +0100
@@ -14,7 +14,7 @@
   '#10': See the expand_version.py for all the quirks here
   core_version: 5.0.0
   g_stands_for: generous
-  version: 1.8.5
+  version: 1.8.6
 filegroups:
 - name: census
   public_headers:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/gRPC-Core.podspec 
new/grpc-1.8.6/gRPC-Core.podspec
--- old/grpc-1.8.5/gRPC-Core.podspec    2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/gRPC-Core.podspec    2018-01-27 01:42:38.000000000 +0100
@@ -22,7 +22,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-Core'
-  version = '1.8.5'
+  version = '1.8.6'
   s.version  = version
   s.summary  = 'Core cross-platform gRPC library, written in C'
   s.homepage = 'https://grpc.io'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/gRPC-ProtoRPC.podspec 
new/grpc-1.8.6/gRPC-ProtoRPC.podspec
--- old/grpc-1.8.5/gRPC-ProtoRPC.podspec        2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/gRPC-ProtoRPC.podspec        2018-01-27 01:42:38.000000000 
+0100
@@ -21,7 +21,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-ProtoRPC'
-  version = '1.8.5'
+  version = '1.8.6'
   s.version  = version
   s.summary  = 'RPC library for Protocol Buffers, based on gRPC'
   s.homepage = 'https://grpc.io'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/gRPC-RxLibrary.podspec 
new/grpc-1.8.6/gRPC-RxLibrary.podspec
--- old/grpc-1.8.5/gRPC-RxLibrary.podspec       2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/gRPC-RxLibrary.podspec       2018-01-27 01:42:38.000000000 
+0100
@@ -21,7 +21,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC-RxLibrary'
-  version = '1.8.5'
+  version = '1.8.6'
   s.version  = version
   s.summary  = 'Reactive Extensions library for iOS/OSX.'
   s.homepage = 'https://grpc.io'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/gRPC.podspec new/grpc-1.8.6/gRPC.podspec
--- old/grpc-1.8.5/gRPC.podspec 2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/gRPC.podspec 2018-01-27 01:42:38.000000000 +0100
@@ -20,7 +20,7 @@
 
 Pod::Spec.new do |s|
   s.name     = 'gRPC'
-  version = '1.8.5'
+  version = '1.8.6'
   s.version  = version
   s.summary  = 'gRPC client library for iOS/OSX'
   s.homepage = 'https://grpc.io'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/package.xml new/grpc-1.8.6/package.xml
--- old/grpc-1.8.5/package.xml  2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/package.xml  2018-01-27 01:42:38.000000000 +0100
@@ -13,8 +13,8 @@
  <date>2017-08-24</date>
  <time>16:06:07</time>
  <version>
-  <release>1.8.5</release>
-  <api>1.8.5</api>
+  <release>1.8.6</release>
+  <api>1.8.6</api>
  </version>
  <stability>
   <release>beta</release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/core/lib/surface/call.cc 
new/grpc-1.8.6/src/core/lib/surface/call.cc
--- old/grpc-1.8.5/src/core/lib/surface/call.cc 2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/core/lib/surface/call.cc 2018-01-27 01:42:38.000000000 
+0100
@@ -1101,6 +1101,7 @@
 static void publish_app_metadata(grpc_call* call, grpc_metadata_batch* b,
                                  int is_trailing) {
   if (b->list.count == 0) return;
+  if (is_trailing && call->buffered_metadata[1] == nullptr) return;
   GPR_TIMER_BEGIN("publish_app_metadata", 0);
   grpc_metadata_array* dest;
   grpc_metadata* mdusr;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/cpp/common/version_cc.cc 
new/grpc-1.8.6/src/cpp/common/version_cc.cc
--- old/grpc-1.8.5/src/cpp/common/version_cc.cc 2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/cpp/common/version_cc.cc 2018-01-27 01:42:38.000000000 
+0100
@@ -22,5 +22,5 @@
 #include <grpc++/grpc++.h>
 
 namespace grpc {
-grpc::string Version() { return "1.8.5"; }
+grpc::string Version() { return "1.8.6"; }
 }  // namespace grpc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/csharp/Grpc.Core/Version.csproj.include 
new/grpc-1.8.6/src/csharp/Grpc.Core/Version.csproj.include
--- old/grpc-1.8.5/src/csharp/Grpc.Core/Version.csproj.include  2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/csharp/Grpc.Core/Version.csproj.include  2018-01-27 
01:42:38.000000000 +0100
@@ -1,7 +1,7 @@
 <!-- This file is generated -->
 <Project>
   <PropertyGroup>
-    <GrpcCsharpVersion>1.8.5</GrpcCsharpVersion>
+    <GrpcCsharpVersion>1.8.6</GrpcCsharpVersion>
     <GoogleProtobufVersion>3.3.0</GoogleProtobufVersion>
   </PropertyGroup>
 </Project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/csharp/Grpc.Core/VersionInfo.cs 
new/grpc-1.8.6/src/csharp/Grpc.Core/VersionInfo.cs
--- old/grpc-1.8.5/src/csharp/Grpc.Core/VersionInfo.cs  2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/csharp/Grpc.Core/VersionInfo.cs  2018-01-27 
01:42:38.000000000 +0100
@@ -33,11 +33,11 @@
         /// <summary>
         /// Current <c>AssemblyFileVersion</c> of gRPC C# assemblies
         /// </summary>
-        public const string CurrentAssemblyFileVersion = "1.8.5.0";
+        public const string CurrentAssemblyFileVersion = "1.8.6.0";
 
         /// <summary>
         /// Current version of gRPC C#
         /// </summary>
-        public const string CurrentVersion = "1.8.5";
+        public const string CurrentVersion = "1.8.6";
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/csharp/build_packages_dotnetcli.bat 
new/grpc-1.8.6/src/csharp/build_packages_dotnetcli.bat
--- old/grpc-1.8.5/src/csharp/build_packages_dotnetcli.bat      2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/csharp/build_packages_dotnetcli.bat      2018-01-27 
01:42:38.000000000 +0100
@@ -13,7 +13,7 @@
 @rem limitations under the License.
 
 @rem Current package versions
-set VERSION=1.8.5
+set VERSION=1.8.6
 
 @rem Adjust the location of nuget.exe
 set NUGET=C:\nuget\nuget.exe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/csharp/build_packages_dotnetcli.sh 
new/grpc-1.8.6/src/csharp/build_packages_dotnetcli.sh
--- old/grpc-1.8.5/src/csharp/build_packages_dotnetcli.sh       2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/csharp/build_packages_dotnetcli.sh       2018-01-27 
01:42:38.000000000 +0100
@@ -39,7 +39,7 @@
 dotnet pack --configuration Release Grpc.HealthCheck --output 
../../../artifacts
 dotnet pack --configuration Release Grpc.Reflection --output ../../../artifacts
 
-nuget pack Grpc.nuspec -Version "1.8.5" -OutputDirectory ../../artifacts
-nuget pack Grpc.Tools.nuspec -Version "1.8.5" -OutputDirectory ../../artifacts
+nuget pack Grpc.nuspec -Version "1.8.6" -OutputDirectory ../../artifacts
+nuget pack Grpc.Tools.nuspec -Version "1.8.6" -OutputDirectory ../../artifacts
 
 (cd ../../artifacts && zip csharp_nugets_dotnetcli.zip *.nupkg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec 
new/grpc-1.8.6/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec
--- old/grpc-1.8.5/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec    
2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/objective-c/!ProtoCompiler-gRPCPlugin.podspec    
2018-01-27 01:42:38.000000000 +0100
@@ -42,7 +42,7 @@
   # exclamation mark ensures that other "regular" pods will be able to find it 
as it'll be installed
   # before them.
   s.name     = '!ProtoCompiler-gRPCPlugin'
-  v = '1.8.5'
+  v = '1.8.6'
   s.version  = v
   s.summary  = 'The gRPC ProtoC plugin generates Objective-C files from .proto 
services.'
   s.description = <<-DESC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/objective-c/GRPCClient/private/version.h 
new/grpc-1.8.6/src/objective-c/GRPCClient/private/version.h
--- old/grpc-1.8.5/src/objective-c/GRPCClient/private/version.h 2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/objective-c/GRPCClient/private/version.h 2018-01-27 
01:42:38.000000000 +0100
@@ -23,4 +23,4 @@
 // `tools/buildgen/generate_projects.sh`.
 
 
-#define GRPC_OBJC_VERSION_STRING @"1.8.5"
+#define GRPC_OBJC_VERSION_STRING @"1.8.6"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/objective-c/tests/version.h 
new/grpc-1.8.6/src/objective-c/tests/version.h
--- old/grpc-1.8.5/src/objective-c/tests/version.h      2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/objective-c/tests/version.h      2018-01-27 
01:42:38.000000000 +0100
@@ -23,5 +23,5 @@
 // `tools/buildgen/generate_projects.sh`.
 
 
-#define GRPC_OBJC_VERSION_STRING @"1.8.5"
+#define GRPC_OBJC_VERSION_STRING @"1.8.6"
 #define GRPC_C_VERSION_STRING @"5.0.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/php/composer.json 
new/grpc-1.8.6/src/php/composer.json
--- old/grpc-1.8.5/src/php/composer.json        2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/php/composer.json        2018-01-27 01:42:38.000000000 
+0100
@@ -2,7 +2,7 @@
   "name": "grpc/grpc-dev",
   "description": "gRPC library for PHP - for Developement use only",
   "license": "Apache-2.0",
-  "version": "1.8.5",
+  "version": "1.8.6",
   "require": {
     "php": ">=5.5.0",
     "google/protobuf": "^v3.3.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/php/ext/grpc/version.h 
new/grpc-1.8.6/src/php/ext/grpc/version.h
--- old/grpc-1.8.5/src/php/ext/grpc/version.h   2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/php/ext/grpc/version.h   2018-01-27 01:42:38.000000000 
+0100
@@ -20,6 +20,6 @@
 #ifndef VERSION_H
 #define VERSION_H
 
-#define PHP_GRPC_VERSION "1.8.5"
+#define PHP_GRPC_VERSION "1.8.6"
 
 #endif /* VERSION_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/python/grpcio/grpc/_grpcio_metadata.py 
new/grpc-1.8.6/src/python/grpcio/grpc/_grpcio_metadata.py
--- old/grpc-1.8.5/src/python/grpcio/grpc/_grpcio_metadata.py   2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio/grpc/_grpcio_metadata.py   2018-01-27 
01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template`!!!
 
-__version__ = """1.8.5"""
+__version__ = """1.8.6"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/python/grpcio/grpc_version.py 
new/grpc-1.8.6/src/python/grpcio/grpc_version.py
--- old/grpc-1.8.5/src/python/grpcio/grpc_version.py    2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio/grpc_version.py    2018-01-27 
01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/python/grpcio_health_checking/grpc_version.py 
new/grpc-1.8.6/src/python/grpcio_health_checking/grpc_version.py
--- old/grpc-1.8.5/src/python/grpcio_health_checking/grpc_version.py    
2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio_health_checking/grpc_version.py    
2018-01-27 01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/src/python/grpcio_reflection/grpc_version.py 
new/grpc-1.8.6/src/python/grpcio_reflection/grpc_version.py
--- old/grpc-1.8.5/src/python/grpcio_reflection/grpc_version.py 2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio_reflection/grpc_version.py 2018-01-27 
01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/python/grpcio_testing/grpc_version.py 
new/grpc-1.8.6/src/python/grpcio_testing/grpc_version.py
--- old/grpc-1.8.5/src/python/grpcio_testing/grpc_version.py    2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio_testing/grpc_version.py    2018-01-27 
01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio_testing/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/python/grpcio_tests/grpc_version.py 
new/grpc-1.8.6/src/python/grpcio_tests/grpc_version.py
--- old/grpc-1.8.5/src/python/grpcio_tests/grpc_version.py      2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/src/python/grpcio_tests/grpc_version.py      2018-01-27 
01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/src/python/grpcio_tests/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/ruby/lib/grpc/version.rb 
new/grpc-1.8.6/src/ruby/lib/grpc/version.rb
--- old/grpc-1.8.5/src/ruby/lib/grpc/version.rb 2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/ruby/lib/grpc/version.rb 2018-01-27 01:42:38.000000000 
+0100
@@ -14,5 +14,5 @@
 
 # GRPC contains the General RPC module.
 module GRPC
-  VERSION = '1.8.5'
+  VERSION = '1.8.6'
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/src/ruby/tools/version.rb 
new/grpc-1.8.6/src/ruby/tools/version.rb
--- old/grpc-1.8.5/src/ruby/tools/version.rb    2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/src/ruby/tools/version.rb    2018-01-27 01:42:38.000000000 
+0100
@@ -14,6 +14,6 @@
 
 module GRPC
   module Tools
-    VERSION = '1.8.5'
+    VERSION = '1.8.6'
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/test/core/bad_client/gen_build_yaml.py 
new/grpc-1.8.6/test/core/bad_client/gen_build_yaml.py
--- old/grpc-1.8.5/test/core/bad_client/gen_build_yaml.py       2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/test/core/bad_client/gen_build_yaml.py       2018-01-27 
01:42:38.000000000 +0100
@@ -27,6 +27,7 @@
 BAD_CLIENT_TESTS = {
     'badreq': default_test_options,
     'connection_prefix': default_test_options._replace(cpu_cost=0.2),
+    'duplicate_header': default_test_options,
     'headers': default_test_options._replace(cpu_cost=0.2),
     'initial_settings_frame': default_test_options._replace(cpu_cost=0.2),
     'head_of_line_blocking': default_test_options,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/test/core/bad_client/generate_tests.bzl 
new/grpc-1.8.6/test/core/bad_client/generate_tests.bzl
--- old/grpc-1.8.5/test/core/bad_client/generate_tests.bzl      2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/test/core/bad_client/generate_tests.bzl      2018-01-27 
01:42:38.000000000 +0100
@@ -25,6 +25,7 @@
 BAD_CLIENT_TESTS = {
     'badreq': test_options(),
     'connection_prefix': test_options(),
+    'duplicate_header': test_options(),
     'headers': test_options(),
     'initial_settings_frame': test_options(),
     'head_of_line_blocking': test_options(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/test/core/bad_client/tests/duplicate_header.cc 
new/grpc-1.8.6/test/core/bad_client/tests/duplicate_header.cc
--- old/grpc-1.8.5/test/core/bad_client/tests/duplicate_header.cc       
1970-01-01 01:00:00.000000000 +0100
+++ new/grpc-1.8.6/test/core/bad_client/tests/duplicate_header.cc       
2018-01-27 01:42:38.000000000 +0100
@@ -0,0 +1,134 @@
+/*
+ *
+ * Copyright 2018 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "test/core/bad_client/bad_client.h"
+
+#include <string.h>
+
+#include <grpc/grpc.h>
+
+#include "src/core/lib/surface/server.h"
+#include "test/core/end2end/cq_verifier.h"
+
+#define PFX_STR                      \
+  "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" \
+  "\x00\x00\x00\x04\x00\x00\x00\x00\x00" /* settings frame */
+
+#define HEADER_STR                                                         \
+  "\x00\x00\xc9\x01\x04\x00\x00\x00\x01" /* headers: generated from        \
+                                            simple_request.headers in this \
+                                            directory */                   \
+  "\x10\x05:path\x08/foo/bar"                                              \
+  "\x10\x07:scheme\x04http"                                                \
+  "\x10\x07:method\x04POST"                                                \
+  "\x10\x0a:authority\x09localhost"                                        \
+  "\x10\x0c"                                                               \
+  "content-type\x10"                                                       \
+  "application/grpc"                                                       \
+  "\x10\x14grpc-accept-encoding\x15"                                       \
+  "deflate,identity,gzip"                                                  \
+  "\x10\x02te\x08trailers"                                                 \
+  "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
+
+#define PAYLOAD_STR                      \
+  "\x00\x00\x20\x00\x00\x00\x00\x00\x01" \
+  "\x00\x00\x00\x00"
+
+static void* tag(intptr_t t) { return (void*)t; }
+
+static void verifier(grpc_server* server, grpc_completion_queue* cq,
+                     void* registered_method) {
+  grpc_call_error error;
+  grpc_call* s;
+  grpc_call_details call_details;
+  grpc_byte_buffer* request_payload_recv = nullptr;
+  grpc_op* op;
+  grpc_op ops[6];
+  cq_verifier* cqv = cq_verifier_create(cq);
+  grpc_metadata_array request_metadata_recv;
+  int was_cancelled = 2;
+
+  grpc_call_details_init(&call_details);
+  grpc_metadata_array_init(&request_metadata_recv);
+
+  error = grpc_server_request_call(server, &s, &call_details,
+                                   &request_metadata_recv, cq, cq, tag(101));
+  GPR_ASSERT(GRPC_CALL_OK == error);
+  CQ_EXPECT_COMPLETION(cqv, tag(101), 1);
+  cq_verify(cqv);
+
+  GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.host, "localhost"));
+  GPR_ASSERT(0 == grpc_slice_str_cmp(call_details.method, "/foo/bar"));
+
+  memset(ops, 0, sizeof(ops));
+  op = ops;
+  op->op = GRPC_OP_SEND_INITIAL_METADATA;
+  op->data.send_initial_metadata.count = 0;
+  op->flags = 0;
+  op->reserved = nullptr;
+  op++;
+  op->op = GRPC_OP_RECV_MESSAGE;
+  op->data.recv_message.recv_message = &request_payload_recv;
+  op->flags = 0;
+  op->reserved = nullptr;
+  op++;
+  error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), nullptr);
+  GPR_ASSERT(GRPC_CALL_OK == error);
+
+  CQ_EXPECT_COMPLETION(cqv, tag(102), 1);
+  cq_verify(cqv);
+
+  memset(ops, 0, sizeof(ops));
+  op = ops;
+  op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+  op->data.recv_close_on_server.cancelled = &was_cancelled;
+  op->flags = 0;
+  op->reserved = nullptr;
+  op++;
+  op->op = GRPC_OP_SEND_STATUS_FROM_SERVER;
+  op->data.send_status_from_server.trailing_metadata_count = 0;
+  op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED;
+  grpc_slice status_details = grpc_slice_from_static_string("xyz");
+  op->data.send_status_from_server.status_details = &status_details;
+  op->flags = 0;
+  op->reserved = nullptr;
+  op++;
+  error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(103), nullptr);
+  GPR_ASSERT(GRPC_CALL_OK == error);
+
+  CQ_EXPECT_COMPLETION(cqv, tag(103), 1);
+
+  grpc_metadata_array_destroy(&request_metadata_recv);
+  grpc_call_details_destroy(&call_details);
+  grpc_call_unref(s);
+  cq_verifier_destroy(cqv);
+}
+
+int main(int argc, char** argv) {
+  grpc_test_init(argc, argv);
+  grpc_init();
+
+  /* Verify that sending multiple headers doesn't segfault */
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr,
+                           PFX_STR HEADER_STR HEADER_STR PAYLOAD_STR, 0);
+  GRPC_RUN_BAD_CLIENT_TEST(verifier, nullptr,
+                           PFX_STR HEADER_STR HEADER_STR HEADER_STR 
PAYLOAD_STR,
+                           0);
+  grpc_shutdown();
+  return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/tools/distrib/python/grpcio_tools/grpc_version.py 
new/grpc-1.8.6/tools/distrib/python/grpcio_tools/grpc_version.py
--- old/grpc-1.8.5/tools/distrib/python/grpcio_tools/grpc_version.py    
2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/tools/distrib/python/grpcio_tools/grpc_version.py    
2018-01-27 01:42:38.000000000 +0100
@@ -14,4 +14,4 @@
 
 # AUTO-GENERATED FROM 
`$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
 
-VERSION='1.8.5'
+VERSION='1.8.6'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/tools/doxygen/Doxyfile.c++ 
new/grpc-1.8.6/tools/doxygen/Doxyfile.c++
--- old/grpc-1.8.5/tools/doxygen/Doxyfile.c++   2018-01-18 19:55:43.000000000 
+0100
+++ new/grpc-1.8.6/tools/doxygen/Doxyfile.c++   2018-01-27 01:42:38.000000000 
+0100
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.8.5
+PROJECT_NUMBER         = 1.8.6
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/tools/doxygen/Doxyfile.c++.internal 
new/grpc-1.8.6/tools/doxygen/Doxyfile.c++.internal
--- old/grpc-1.8.5/tools/doxygen/Doxyfile.c++.internal  2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/tools/doxygen/Doxyfile.c++.internal  2018-01-27 
01:42:38.000000000 +0100
@@ -40,7 +40,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.8.5
+PROJECT_NUMBER         = 1.8.6
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/grpc-1.8.5/tools/run_tests/generated/sources_and_headers.json 
new/grpc-1.8.6/tools/run_tests/generated/sources_and_headers.json
--- old/grpc-1.8.5/tools/run_tests/generated/sources_and_headers.json   
2018-01-18 19:55:43.000000000 +0100
+++ new/grpc-1.8.6/tools/run_tests/generated/sources_and_headers.json   
2018-01-27 01:42:38.000000000 +0100
@@ -4876,6 +4876,24 @@
     "headers": [], 
     "is_filegroup": false, 
     "language": "c", 
+    "name": "duplicate_header_bad_client_test", 
+    "src": [
+      "test/core/bad_client/tests/duplicate_header.cc"
+    ], 
+    "third_party": false, 
+    "type": "target"
+  }, 
+  {
+    "deps": [
+      "bad_client_test", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "is_filegroup": false, 
+    "language": "c", 
     "name": "head_of_line_blocking_bad_client_test", 
     "src": [
       "test/core/bad_client/tests/head_of_line_blocking.cc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/grpc-1.8.5/tools/run_tests/generated/tests.json 
new/grpc-1.8.6/tools/run_tests/generated/tests.json
--- old/grpc-1.8.5/tools/run_tests/generated/tests.json 2018-01-18 
19:55:43.000000000 +0100
+++ new/grpc-1.8.6/tools/run_tests/generated/tests.json 2018-01-27 
01:42:38.000000000 +0100
@@ -4571,6 +4571,32 @@
     "flaky": false, 
     "gtest": false, 
     "language": "c", 
+    "name": "duplicate_header_bad_client_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "uses_polling": true
+  }, 
+  {
+    "args": [], 
+    "benchmark": false, 
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "cpu_cost": 1.0, 
+    "exclude_configs": [], 
+    "exclude_iomgrs": [
+      "uv"
+    ], 
+    "flaky": false, 
+    "gtest": false, 
+    "language": "c", 
     "name": "head_of_line_blocking_bad_client_test", 
     "platforms": [
       "linux", 


Reply via email to