From 52acd736d0ab1563f48a11af2a86d31c40227d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=E9r=F4me=20Flesch?= Date: Tue, 30 Mar 2010 07:24:59 +0000 Subject: [PATCH] Coroipcc: Make sure that coroipcc_service_connect() always return a valid cs_error_t git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2748 fd59a12c-fef9-0310-b244-a6a79926bd2f --- lib/coroipcc.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/coroipcc.c b/lib/coroipcc.c index e0ec66bb..06e4d752 100644 --- a/lib/coroipcc.c +++ b/lib/coroipcc.c @@ -654,42 +654,42 @@ coroipcc_service_connect ( goto error_connect; } - res = memory_map ( + sys_res = memory_map ( control_map_path, "control_buffer-XXXXXX", (void *)&ipc_instance->control_buffer, 8192); - if (res == -1) { + if (sys_res == -1) { res = CS_ERR_LIBRARY; goto error_connect; } - res = memory_map ( + sys_res = memory_map ( request_map_path, "request_buffer-XXXXXX", (void *)&ipc_instance->request_buffer, request_size); - if (res == -1) { + if (sys_res == -1) { res = CS_ERR_LIBRARY; goto error_request_buffer; } - res = memory_map ( + sys_res = memory_map ( response_map_path, "response_buffer-XXXXXX", (void *)&ipc_instance->response_buffer, response_size); - if (res == -1) { + if (sys_res == -1) { res = CS_ERR_LIBRARY; goto error_response_buffer; } - res = circular_memory_map ( + sys_res = circular_memory_map ( dispatch_map_path, "dispatch_buffer-XXXXXX", (void *)&ipc_instance->dispatch_buffer, dispatch_size); - if (res == -1) { + if (sys_res == -1) { res = CS_ERR_LIBRARY; goto error_dispatch_buffer; } @@ -699,7 +699,6 @@ coroipcc_service_connect ( sem_init (&ipc_instance->control_buffer->sem1, 1, 0); sem_init (&ipc_instance->control_buffer->sem2, 1, 0); #else - /* * Allocate a semaphore segment */ @@ -718,18 +717,21 @@ coroipcc_service_connect ( * an existing shared memory segment for which we have access */ if (errno != EEXIST && errno != EACCES) { + res = CS_ERR_LIBRARY; goto error_exit; } } semun.val = 0; - res = semctl (ipc_instance->semid, 0, SETVAL, semun); - if (res != 0) { + sys_res = semctl (ipc_instance->semid, 0, SETVAL, semun); + if (sys_res != 0) { + res = CS_ERR_LIBRARY; goto error_exit; } - res = semctl (ipc_instance->semid, 1, SETVAL, semun); - if (res != 0) { + sys_res = semctl (ipc_instance->semid, 1, SETVAL, semun); + if (sys_res != 0) { + res = CS_ERR_LIBRARY; goto error_exit; } #endif