Signed-off-by: Jan Friesse <[email protected]>
---
 exec/ipc_glue.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/exec/ipc_glue.c b/exec/ipc_glue.c
index a824b99..6e2b92b 100644
--- a/exec/ipc_glue.c
+++ b/exec/ipc_glue.c
@@ -842,15 +842,25 @@ static enum qb_ipc_type cs_get_ipc_type (void)
 
 const char *cs_ipcs_service_init(struct corosync_service_engine *service)
 {
+       const char *serv_short_name;
+
+       serv_short_name = cs_ipcs_serv_short_name(service->id);
+
        if (service->lib_engine_count == 0) {
                log_printf (LOGSYS_LEVEL_DEBUG,
                        "NOT Initializing IPC on %s [%d]",
-                       cs_ipcs_serv_short_name(service->id),
+                       serv_short_name,
                        service->id);
                return NULL;
        }
+
+       if (strlen(serv_short_name) >= CS_IPCS_MAPPER_SERV_NAME) {
+               log_printf (LOGSYS_LEVEL_ERROR, "service name %s is too long", 
serv_short_name);
+               return "qb_ipcs_run error";
+       }
+
        ipcs_mapper[service->id].id = service->id;
-       strcpy(ipcs_mapper[service->id].name, 
cs_ipcs_serv_short_name(service->id));
+       strcpy(ipcs_mapper[service->id].name, serv_short_name);
        log_printf (LOGSYS_LEVEL_DEBUG,
                "Initializing IPC on %s [%d]",
                ipcs_mapper[service->id].name,
-- 
1.7.1

_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to