Fix a prevent issue. 72/49372/2
authorSangkyu Park <sk1122.park@samsung.com>
Fri, 21 Aug 2015 02:22:15 +0000 (11:22 +0900)
committerSangkyu Park <sk1122.park@samsung.com>
Tue, 13 Oct 2015 05:44:04 +0000 (22:44 -0700)
- Replace strcpy to strncpy

Change-Id: I8698cd5470e20e56e9e6636d64eb6308fc5633e1
Signed-off-by: Sangkyu Park <sk1122.park@samsung.com>
include/scmirroring_src_ini.h
packaging/capi-media-screen-mirroring.spec
src/scmirroring_src_ini.c

index 7cb15a82de7d7729f83ed6afa3bb744eefbb5e95..3523d500f37ad78dc0d43dd6fc96d4aca49b4135 100755 (executable)
@@ -32,6 +32,7 @@ extern "C" {
 #define SCMIRRORING_SRC_INI() scmirroring_src_ini_get_structure()
 
 #define SCMIRRORING_SRC_INI_MAX_STRLEN 80
+#define SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN 256
 
 typedef enum __scmirroring_ini_videosink_element {
        SCMIRRORING_INI_VSINK_V4l2SINK = 0,
@@ -93,7 +94,7 @@ typedef struct __scmirroring_src_ini {
        gint hdcp_enabled;
        guint8 uibc_gen_capability;
 
-       gchar gst_param[SCMIRRORING_SRC_INI_GST_START_PARAMS_NUM][256];
+       gchar gst_param[SCMIRRORING_SRC_INI_GST_START_PARAMS_NUM][SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN];
        gboolean disable_segtrap;
 
        gint dump_ts;
index 98ee2fd2166838f3b7681ec682433a496e741ccd..d54be6223edf92aa7fe1d4d6cf76be57467d5304 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       capi-media-screen-mirroring
 Summary:    A screen mirroring library in Tizen C API
-Version:    0.1.42
+Version:    0.1.43
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 47f77833455873e0b404b899ac985f3a55960ee9..d0fd1ae8ef12459364f054c190be7003bcf48a2b 100755 (executable)
@@ -29,18 +29,22 @@ static void __scmirroring_ini_check_ini_status(void);
 
 /* macro */
 #define SCMIRRORING_INI_GET_STRING(x_item, x_ini, x_default) \
-       do { \
-               gchar *str = iniparser_getstring(dict, x_ini, (char *)x_default); \
-               \
-               if (str && \
-                    (strlen(str) > 1) && \
-                    (strlen(str) < SCMIRRORING_SRC_INI_MAX_STRLEN)) { \
-                       strcpy(x_item, str); \
-               } \
-               else { \
-                       strcpy(x_item, x_default); \
-               } \
-       } while (0);
+do \
+{ \
+       gchar* str = NULL; \
+       gint length = 0; \
+       str = iniparser_getstring(dict, x_ini, (char *)x_default); \
+       if ( str ) { \
+               length = strlen (str); \
+               if(( length > 1 ) && ( length < SCMIRRORING_SRC_INI_MAX_STRLEN ) ) \
+                       strncpy ( x_item, str, length + 1); \
+               else \
+                       strncpy ( x_item, x_default, SCMIRRORING_SRC_INI_MAX_STRLEN - 1); \
+       } \
+       else { \
+               strncpy ( x_item, x_default, SCMIRRORING_SRC_INI_MAX_STRLEN - 1); \
+       } \
+} while (0);
 
 
 int
@@ -162,7 +166,7 @@ scmirroring_src_ini_load(void)
                g_scmirroring_src_ini.generate_dot = DEFAULT_GENERATE_DOT;
                g_scmirroring_src_ini.provide_clock = DEFAULT_PROVIDE_CLOCK;
 
-               strcpy(g_scmirroring_src_ini.name_of_audio_device, DEFAULT_AUDIO_DEVICE_NAME);
+               strncpy(g_scmirroring_src_ini.name_of_audio_device, DEFAULT_AUDIO_DEVICE_NAME, SCMIRRORING_SRC_INI_MAX_STRLEN - 1);
                g_scmirroring_src_ini.audio_latency_time = DEFAULT_AUDIO_LATENCY_TIME;
                g_scmirroring_src_ini.audio_buffer_time = DEFAULT_AUDIO_BUFFER_TIME;
                g_scmirroring_src_ini.audio_do_timestamp = DEFAULT_AUDIO_DO_TIMESTAMP;
@@ -174,15 +178,14 @@ scmirroring_src_ini_load(void)
                g_scmirroring_src_ini.hdcp_enabled = DEFAULT_HDCP_ENABLED;
                g_scmirroring_src_ini.uibc_gen_capability = DEFAULT_UIBC_GEN_CAPABILITY;
 
-               strcpy(g_scmirroring_src_ini.name_of_video_converter, DEFAULT_VIDEO_CONVERTER);
+               strncpy(g_scmirroring_src_ini.name_of_video_converter, DEFAULT_VIDEO_CONVERTER, SCMIRRORING_SRC_INI_MAX_STRLEN - 1);
 
 
-               strcpy(g_scmirroring_src_ini.gst_param[0], DEFAULT_GST_PARAM);
-               strcpy(g_scmirroring_src_ini.gst_param[1], DEFAULT_GST_PARAM);
-               strcpy(g_scmirroring_src_ini.gst_param[2], DEFAULT_GST_PARAM);
-               strcpy(g_scmirroring_src_ini.gst_param[3], DEFAULT_GST_PARAM);
-               strcpy(g_scmirroring_src_ini.gst_param[4], DEFAULT_GST_PARAM);
-
+               strncpy(g_scmirroring_src_ini.gst_param[0], DEFAULT_GST_PARAM, SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN - 1);
+               strncpy(g_scmirroring_src_ini.gst_param[1], DEFAULT_GST_PARAM, SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN - 1);
+               strncpy(g_scmirroring_src_ini.gst_param[2], DEFAULT_GST_PARAM, SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN - 1);
+               strncpy(g_scmirroring_src_ini.gst_param[3], DEFAULT_GST_PARAM, SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN - 1);
+               strncpy(g_scmirroring_src_ini.gst_param[4], DEFAULT_GST_PARAM, SCMIRRORING_SRC_INI_MAX_PARAM_STRLEN - 1);
                g_scmirroring_src_ini.dump_ts = DEFAULT_DUMP_TS;
 
        }