mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-06 01:31:29 +00:00
defect 639
fix segfault if null callback parameter passed to saClmInitialize (Logical change 1.220) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@696 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
5be178c2b2
commit
a6496d9b9b
12
lib/clm.c
12
lib/clm.c
@ -133,7 +133,11 @@ saClmInitialize (
|
||||
goto error_put_destroy;
|
||||
}
|
||||
|
||||
memcpy (&clmInstance->callbacks, clmCallbacks, sizeof (SaClmCallbacksT));
|
||||
if (clmCallbacks) {
|
||||
memcpy (&clmInstance->callbacks, clmCallbacks, sizeof (SaClmCallbacksT));
|
||||
} else {
|
||||
memset (&clmInstance->callbacks, 0, sizeof (SaClmCallbacksT));
|
||||
}
|
||||
|
||||
pthread_mutex_init (&clmInstance->response_mutex, NULL);
|
||||
|
||||
@ -281,6 +285,9 @@ saClmDispatch (
|
||||
switch (dispatch_data.header.id) {
|
||||
|
||||
case MESSAGE_RES_CLM_TRACKCALLBACK:
|
||||
if (callbacks.saClmClusterTrackCallback == NULL) {
|
||||
continue;
|
||||
}
|
||||
res_clm_trackcallback = (struct res_clm_trackcallback *)&dispatch_data;
|
||||
error = SA_AIS_OK;
|
||||
|
||||
@ -316,6 +323,9 @@ saClmDispatch (
|
||||
break;
|
||||
|
||||
case MESSAGE_RES_CLM_NODEGETCALLBACK:
|
||||
if (callbacks.saClmClusterNodeGetCallback == NULL) {
|
||||
continue;
|
||||
}
|
||||
res_clm_nodegetcallback = (struct res_clm_nodegetcallback *)&dispatch_data;
|
||||
|
||||
callbacks.saClmClusterNodeGetCallback (
|
||||
|
Loading…
Reference in New Issue
Block a user