osaf/libs/agents/saf/lga/lga_api.c | 3 ++- osaf/libs/agents/saf/lga/lga_state.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-)
Not initilize the global pointer variable `client_list`. It might refer to an invalid/unallocated memory. If it is the case, the application will be crashed. This patch does initialize. diff --git a/osaf/libs/agents/saf/lga/lga_api.c b/osaf/libs/agents/saf/lga/lga_api.c --- a/osaf/libs/agents/saf/lga/lga_api.c +++ b/osaf/libs/agents/saf/lga/lga_api.c @@ -42,7 +42,8 @@ /* The main controle block */ lga_cb_t lga_cb = { .cb_lock = PTHREAD_MUTEX_INITIALIZER, - .lgs_state = LGS_START + .lgs_state = LGS_START, + .client_list = NULL }; static bool is_well_know_stream(const char* dn) diff --git a/osaf/libs/agents/saf/lga/lga_state.c b/osaf/libs/agents/saf/lga/lga_state.c --- a/osaf/libs/agents/saf/lga/lga_state.c +++ b/osaf/libs/agents/saf/lga/lga_state.c @@ -359,7 +359,7 @@ static void *recovery2_thread(void *dumm lga_client_hdl_rec_t *p_client; p_client = lga_cb.client_list; - while (p_client != NULL) { + while (p_client != NULL && p_client->recovered_flag == false) { /* Exit if requested to */ rc = osaf_poll_one_fd(state2_terminate_sel_obj.rmv_obj, 0); if (rc > 0) { ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel