diff --git a/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch b/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch new file mode 100644 index 0000000..c8bd7f0 --- /dev/null +++ b/SOURCES/bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch @@ -0,0 +1,60 @@ +commit aa326fb8f87fa0e2db6901db2ccb93cd582dd44f +Author: Fabio M. Di Nitto +Date: Tue Apr 6 13:06:05 2021 +0200 + + knet: pass correct handle to knet_handle_compress + + totemknet_configure_compression was using knet_context + just to gather the knet handle / instance. + + On first time config knet_contex is not initialized till + much later in the code, passing some random garbage pointers + to knet_handle_compress, that would crash later trying + to acquire a mutex lock. + + Signed-off-by: Fabio M. Di Nitto + Reviewed-by: Jan Friesse + +diff --git a/exec/totemknet.c b/exec/totemknet.c +index 0834e8e..e895256 100644 +--- a/exec/totemknet.c ++++ b/exec/totemknet.c +@@ -197,7 +197,7 @@ int totemknet_member_list_rebind_ip ( + + + static int totemknet_configure_compression ( +- void *knet_context, ++ struct totemknet_instance *instance, + struct totem_config *totem_config); + + static void totemknet_start_merge_detect_timeout( +@@ -1154,7 +1154,7 @@ int totemknet_initialize ( + /* Set up compression */ + if (strcmp(totem_config->knet_compression_model, "none") != 0) { + /* Not fatal, but will log */ +- (void)totemknet_configure_compression(knet_context, totem_config); ++ (void)totemknet_configure_compression(instance, totem_config); + } + + knet_handle_setfwd(instance->knet_handle, 1); +@@ -1557,10 +1557,9 @@ int totemknet_member_list_rebind_ip ( + + + static int totemknet_configure_compression ( +- void *knet_context, ++ struct totemknet_instance *instance, + struct totem_config *totem_config) + { +- struct totemknet_instance *instance = (struct totemknet_instance *)knet_context; + struct knet_handle_compress_cfg compress_cfg; + int res = 0; + +@@ -1584,7 +1583,7 @@ int totemknet_reconfigure ( + struct totemknet_instance *instance = (struct totemknet_instance *)knet_context; + int res = 0; + +- (void)totemknet_configure_compression(knet_context, totem_config); ++ (void)totemknet_configure_compression(instance, totem_config); + + #ifdef HAVE_LIBNOZZLE + /* Set up nozzle device(s). Return code is ignored, because inability diff --git a/SPECS/corosync.spec b/SPECS/corosync.spec index 46115ea..06d8245 100644 --- a/SPECS/corosync.spec +++ b/SPECS/corosync.spec @@ -23,12 +23,13 @@ Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces Version: 3.1.0 -Release: 3%{?gitver}%{?dist} +Release: 3%{?gitver}%{?dist}.1 License: BSD URL: http://corosync.github.io/corosync/ Source0: http://build.clusterlabs.org/corosync/releases/%{name}-%{version}%{?gittarver}.tar.gz Patch0: bz1896493-1-totemknet-Check-both-cipher-and-hash-for-crypto.patch +Patch1: bz1951049-1-knet-pass-correct-handle-to-knet_handle_compress.patch %if %{with spausedd} Source1: https://github.com/jfriesse/spausedd/releases/download/%{spausedd_version}/spausedd-%{spausedd_version}.tar.gz @@ -94,6 +95,7 @@ BuildRequires: pkgconfig(vmguestlib) %endif %patch0 -p1 -b .bz1896493-1 +%patch1 -p1 -b .bz1951049-1 %build %if %{with runautogen} @@ -393,6 +395,11 @@ fi %endif %changelog +* Mon Apr 19 2021 Jan Friesse 3.1.0-3.1 +- Resolves: rhbz#1951049 + +- knet: pass correct handle to knet_handle_compress (rhbz#1951049) + * Thu Nov 12 2020 Jan Friesse 3.1.0-3 - Resolves: rhbz#1897085 - Resolves: rhbz#1896493