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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel