The saMsgDispatch 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.
Same problem that Christine found in lck service.
Ryan
Index: msg.c
===================================================================
--- msg.c (revision 2097)
+++ msg.c (working copy)
@@ -295,7 +295,7 @@
{
case MESSAGE_RES_MSG_QUEUEOPEN_CALLBACK:
if (callbacks.saMsgQueueOpenCallback == NULL) {
- continue;
+ break;
}
res_lib_msg_queueopen_callback =
(struct res_lib_msg_queueopen_callback
*)dispatch_data;
@@ -324,7 +324,7 @@
case MESSAGE_RES_MSG_QUEUEGROUPTRACK_CALLBACK:
if (callbacks.saMsgQueueGroupTrackCallback == NULL) {
- continue;
+ break;
}
res_lib_msg_queuegrouptrack_callback =
(struct res_lib_msg_queuegrouptrack_callback
*)dispatch_data;
@@ -354,7 +354,7 @@
case MESSAGE_RES_MSG_MESSAGEDELIVERED_CALLBACK:
if (callbacks.saMsgMessageDeliveredCallback == NULL) {
- continue;
+ break;
}
res_lib_msg_messagedelivered_callback =
(struct res_lib_msg_messagedelivered_callback
*)dispatch_data;
@@ -367,7 +367,7 @@
case MESSAGE_RES_MSG_MESSAGERECEIVED_CALLBACK:
if (callbacks.saMsgMessageReceivedCallback == NULL) {
- continue;
+ break;
}
res_lib_msg_messagereceived_callback =
(struct res_lib_msg_messagereceived_callback
*)dispatch_data;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais