61 lines
2.1 KiB
Diff
61 lines
2.1 KiB
Diff
|
commit aa326fb8f87fa0e2db6901db2ccb93cd582dd44f
|
||
|
Author: Fabio M. Di Nitto <fdinitto@redhat.com>
|
||
|
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 <fdinitto@redhat.com>
|
||
|
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
|
||
|
|
||
|
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
|