The saClmDispatch routine can get into a tight loop if a callback is
undefined (NULL). If callback is NULL, we should simply break out of
the switch statement rather than continue.
This should be equivalent to the fix that Christine posted for the lck
service. Only difference is this patch calls 'break' rather than
'goto'.
Ryan
Index: lck.c
===================================================================
--- lck.c (revision 2097)
+++ lck.c (working copy)
@@ -345,7 +345,7 @@
switch (dispatch_data->id) {
case MESSAGE_RES_LCK_RESOURCEOPEN_CALLBACK:
if (callbacks.saLckResourceOpenCallback == NULL) {
- continue;
+ break;
}
res_lib_lck_resourceopen_callback =
(struct res_lib_lck_resourceopen_callback
*)dispatch_data;
@@ -374,7 +374,7 @@
case MESSAGE_RES_LCK_LOCKGRANT_CALLBACK:
if (callbacks.saLckLockGrantCallback == NULL) {
- continue;
+ break;
}
res_lib_lck_lockgrant_callback =
(struct res_lib_lck_lockgrant_callback
*)dispatch_data;
@@ -421,7 +421,7 @@
case MESSAGE_RES_LCK_LOCKWAITER_CALLBACK:
if (callbacks.saLckLockWaiterCallback == NULL) {
- continue;
+ break;
}
res_lib_lck_lockwaiter_callback =
(struct res_lib_lck_lockwaiter_callback
*)dispatch_data;
@@ -451,7 +451,7 @@
case MESSAGE_RES_LCK_RESOURCEUNLOCK_CALLBACK:
if (callbacks.saLckResourceUnlockCallback == NULL) {
- continue;
+ break;
}
res_lib_lck_resourceunlock_callback =
(struct res_lib_lck_resourceunlock_callback
*)dispatch_data;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais