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

Reply via email to