소스 검색

Get rid of one crash in confdb. It still double-frees in confdb_finalize though.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1769 fd59a12c-fef9-0310-b244-a6a79926bd2f
Christine Caulfield 17 년 전
부모
커밋
5fddd819b9
1개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. 5 5
      lib/confdb.c

+ 5 - 5
lib/confdb.c

@@ -210,17 +210,17 @@ cs_error_t confdb_finalize (
 
 
 	pthread_mutex_unlock (&confdb_inst->response_mutex);
 	pthread_mutex_unlock (&confdb_inst->response_mutex);
 
 
+	/* Free saved context handles */
+	free_context_list(confdb_inst, &confdb_inst->object_find_head);
+	free_context_list(confdb_inst, &confdb_inst->object_iter_head);
+	free_context_list(confdb_inst, &confdb_inst->key_iter_head);
+
 	if (!confdb_inst->standalone) {
 	if (!confdb_inst->standalone) {
 		cslib_service_disconnect (&confdb_inst->ipc_ctx);
 		cslib_service_disconnect (&confdb_inst->ipc_ctx);
 	}
 	}
 
 
 	(void)saHandleDestroy (&confdb_handle_t_db, handle);
 	(void)saHandleDestroy (&confdb_handle_t_db, handle);
 
 
-	/* Free saved context handles */
-	free_context_list(confdb_inst, &confdb_inst->object_find_head);
-	free_context_list(confdb_inst, &confdb_inst->object_iter_head);
-	free_context_list(confdb_inst, &confdb_inst->key_iter_head);
-
 	(void)saHandleInstancePut (&confdb_handle_t_db, handle);
 	(void)saHandleInstancePut (&confdb_handle_t_db, handle);
 
 
 	return (CS_OK);
 	return (CS_OK);