The saCkptDispatch 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.

Thanks to Christine for finding this problem.

Ryan

Index: ckpt.c
===================================================================
--- ckpt.c      (revision 2097)
+++ ckpt.c      (working copy)
@@ -365,7 +365,7 @@
                switch (dispatch_data->id) {
                case MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC:
                        if (callbacks.saCkptCheckpointOpenCallback == NULL) {
-                               continue;
+                               break;
                        }
                        res_lib_ckpt_checkpointopenasync = (struct 
res_lib_ckpt_checkpointopenasync *) dispatch_data;
 
@@ -409,7 +409,7 @@
 
                case MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC:
                        if (callbacks.saCkptCheckpointSynchronizeCallback == 
NULL) {
-                               continue;
+                               break;
                        }
 
                        res_lib_ckpt_checkpointsynchronizeasync = (struct 
res_lib_ckpt_checkpointsynchronizeasync *) dispatch_data;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to