sensord: fix the bug about terminating null byte when using strncpy 03/34603/1
authorKibak Yoon <kibak.yoon@samsung.com>
Thu, 29 Jan 2015 10:59:47 +0000 (19:59 +0900)
committerKibak Yoon <kibak.yoon@samsung.com>
Thu, 29 Jan 2015 10:59:47 +0000 (19:59 +0900)
when termination was forced, the index was wrong.

Change-Id: I7966527a5bece6bb4a09ceec63d4eec3f751b13b
Signed-off-by: Kibak Yoon <kibak.yoon@samsung.com>
src/shared/csocket.cpp

index e862b63..96ff1d5 100755 (executable)
@@ -103,9 +103,9 @@ bool csocket::bind (const char *sock_path)
        }
 
        m_addr.sun_family = AF_UNIX;
-       int path_size = strlen(sock_path);
-       strncpy(m_addr.sun_path, sock_path, path_size);
-       m_addr.sun_path[path_size - 1] = '\0';
+
+       strncpy(m_addr.sun_path, sock_path, sizeof(m_addr.sun_path));
+       m_addr.sun_path[sizeof(m_addr.sun_path)-1] = '\0';
 
        length = strlen(m_addr.sun_path) + sizeof(m_addr.sun_family);
 
@@ -303,9 +303,9 @@ bool csocket::connect(const char *sock_path)
        set_blocking_mode(false);
 
        m_addr.sun_family = AF_UNIX;
-       int path_size = strlen(sock_path);
-       strncpy(m_addr.sun_path, sock_path, path_size);
-       m_addr.sun_path[path_size - 1] = '\0';
+
+       strncpy(m_addr.sun_path, sock_path, sizeof(m_addr.sun_path));
+       m_addr.sun_path[sizeof(m_addr.sun_path)-1] = '\0';
 
        addr_len = strlen(m_addr.sun_path) + sizeof(m_addr.sun_family);