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:
Steven Dake 2005-06-17 18:49:33 +00:00
parent 5be178c2b2
commit a6496d9b9b

View File

@ -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 (