Fix to use snprintf() instead of memcpy() 22/122322/1 accepted/tizen/common/20170331.152832 accepted/tizen/ivi/20170331.083324 accepted/tizen/mobile/20170331.083445 accepted/tizen/tv/20170331.083307 accepted/tizen/unified/20170331.083627 accepted/tizen/wearable/20170331.083410 submit/tizen/20170331.065508
authorWootak Jung <wootak.jung@samsung.com>
Fri, 31 Mar 2017 05:19:08 +0000 (14:19 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Fri, 31 Mar 2017 05:19:08 +0000 (14:19 +0900)
- Ensure null termination

Change-Id: Ifd09db0e6cebe45cc1e9728d72446105b93b431e

packaging/libtapi.spec
src/tapi_common.c

index cc83675fb3bfd079bf7771d78f0bb21d858b6547..9baad6d35e00cc948160a7969c93db7c4768cf06 100644 (file)
@@ -1,6 +1,6 @@
 %define major 0
 %define minor 8
-%define patchlevel 14
+%define patchlevel 15
 
 Name:           libtapi
 Version:        %{major}.%{minor}.%{patchlevel}
index 383bb43e8aae45d32b65aaeb342c1a0af533facc..371ccdf930b959331e167bdff7e4f2ae20a69ec0 100644 (file)
@@ -223,11 +223,11 @@ static void _process_call_event(const gchar *sig, GVariant *param,
                                &data.ActiveLine,
                                &name);
                if (number) {
-                       memcpy(data.szCallingPartyNumber, number, strlen(number));
+                       snprintf(data.szCallingPartyNumber, strlen(number) + 1, "%s", number);
                        g_free(number);
                }
                if (name) {
-                       memcpy(data.CallingNameInfo.szNameData, name, strlen(name));
+                       snprintf(data.CallingNameInfo.szNameData, strlen(name) + 1, "%s", name);
                        g_free(name);
                }
                msg("[ check ] %s : call_handle(%d)", "Status Incoming noti", data.CallHandle);
@@ -860,7 +860,7 @@ static void _process_sat_event(const gchar *sig, GVariant *param,
                disp_len = strlen(text); /* alpha id */
                if (disp_len > 1) {
                        call_ctrl_result_ind.dispData.stringLen = disp_len;
-                       memcpy(&call_ctrl_result_ind.dispData.string, text, disp_len);
+                       snprintf((char *)call_ctrl_result_ind.dispData.string, disp_len + 1, "%s", text);
                        call_ctrl_result_ind.bIsUserInfoDisplayEnabled = 1;
                }
                g_free(text);
@@ -917,7 +917,7 @@ EXIT:
                disp_len = strlen(text); /* alpha id */
                if (disp_len > 1) {
                        mo_sm_ctrl_result_ind.dispData.stringLen = disp_len;
-                       memcpy(&mo_sm_ctrl_result_ind.dispData.string, text, disp_len);
+                       snprintf(mo_sm_ctrl_result_ind.dispData.string, disp_len + 1, "%s", text);
                        mo_sm_ctrl_result_ind.bIsUserInfoDisplayEnabled = 1;
                }
 
@@ -953,9 +953,9 @@ EXIT:
 
                setup_call_data.commandId = command_type;
                setup_call_data.calltype = call_type;
-               memcpy(&setup_call_data.dispText.string, text, strlen(text));
+               snprintf((char *)setup_call_data.dispText.string, strlen(text) + 1, "%s", text);
                setup_call_data.dispText.stringLen = text_len;
-               memcpy(&setup_call_data.callNumber.string, call_number, strlen(call_number));
+               snprintf((char *)setup_call_data.callNumber.string, strlen(call_number) + 1, "%s", call_number);
                setup_call_data.callNumber.stringLen = strlen(call_number); /* Number length */
                setup_call_data.duration = duration;