Modified strcpy function to stable strncpy function. 66/101666/3
authorsegwon <segwon.han@samsung.com>
Fri, 2 Dec 2016 02:20:35 +0000 (11:20 +0900)
committersegwon <segwon.han@samsung.com>
Fri, 2 Dec 2016 10:08:06 +0000 (19:08 +0900)
Signed-off-by: segwon <segwon.han@samsung.com>
Change-Id: I388f2df56f9ccbf101854f0d4ce2875a0160d2c7

daemon/access_control/ACLManager.cpp

index 84ebef5..4188ebf 100644 (file)
@@ -16,6 +16,8 @@
 
 #include "ACLManager.h"
 
+#define MAC_ADDRESS_LEN 17
+
 typedef struct {
        conv::acl_manager::PopupCallback callback;
        void *userdata;
@@ -273,9 +275,11 @@ ACLResult conv::acl_manager::SetDeviceInfoAndACL(const char *macAddress, const c
                return ACLResult_Error;
        }
 
-       char _mac[50];
-       strcpy(_mac, macAddress);
+       char _mac[MAC_ADDRESS_LEN + 1];
+       strncpy(_mac, macAddress, MAC_ADDRESS_LEN);
        _mac[1] = convert_mac(_mac[1]);
+       _mac[MAC_ADDRESS_LEN] = '\0';
+
        ret = sqlite3_bind_text(stmt, 1, _mac, strlen(_mac), SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
                _E("Statement binding the macAddress text is fail. (%d: %s)", ret, sqlite3_errmsg(database));
@@ -320,9 +324,11 @@ ACLResult conv::acl_manager::GetACLState(const char *macAddress, ACManagerPolicy
                return ACLResult_Error;
        }
 
-       char _mac[50];
-       strcpy(_mac, macAddress);
+       char _mac[MAC_ADDRESS_LEN + 1];
+       strncpy(_mac, macAddress, MAC_ADDRESS_LEN);
        _mac[1] = convert_mac(_mac[1]);
+       _mac[MAC_ADDRESS_LEN] = '\0';
+
        ret = sqlite3_bind_text(stmt, 1, _mac, strlen(_mac), SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
                _E("MacAddress Bind fail. (%d: %s)", ret, sqlite3_errmsg(database));
@@ -392,9 +398,11 @@ static void ChangeACLState(conv::Request *requestObj, const char *macAddress, co
                _E("Statement binding the aclState integer is fail. (%d: %s)", ret, sqlite3_errmsg(database));
        }
 
-       char _mac[50];
-       strcpy(_mac, macAddress);
+       char _mac[MAC_ADDRESS_LEN + 1];
+       strncpy(_mac, macAddress, MAC_ADDRESS_LEN);
        _mac[1] = convert_mac(_mac[1]);
+       _mac[MAC_ADDRESS_LEN] = '\0';
+
        ret = sqlite3_bind_text(stmt, 3, _mac, strlen(_mac), SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
                _E("Statement binding the macAddress text is fail. (%d: %s)", ret, sqlite3_errmsg(database));
@@ -430,9 +438,11 @@ static void SetACLState(conv::Request *requestObj, const char *macAddress, const
                return;
        }
 
-       char _mac[50];
-       strcpy(_mac, macAddress);
+       char _mac[MAC_ADDRESS_LEN + 1];
+       strncpy(_mac, macAddress, MAC_ADDRESS_LEN);
        _mac[1] = convert_mac(_mac[1]);
+       _mac[MAC_ADDRESS_LEN] = '\0';
+
        ret = sqlite3_bind_text(stmt, 1, _mac, strlen(_mac), SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
                _E("Statement binding the macAddress text is fail. (%d: %s)", ret, sqlite3_errmsg(database));
@@ -471,9 +481,11 @@ static void RemoveACLDevice(conv::Request *requestObj, const char *macAddress)
                return;
        }
 
-       char _mac[50];
-       strcpy(_mac, macAddress);
+       char _mac[MAC_ADDRESS_LEN + 1];
+       strncpy(_mac, macAddress, MAC_ADDRESS_LEN);
        _mac[1] = convert_mac(_mac[1]);
+       _mac[MAC_ADDRESS_LEN] = '\0';
+
        ret = sqlite3_bind_text(stmt, 1, _mac, strlen(_mac), SQLITE_TRANSIENT);
        if (ret != SQLITE_OK) {
                _E("Statement binding the macAddress text is fail. (%d: %s)", ret, sqlite3_errmsg(database));