#include <glib/gstdio.h>
/* internal functions, macros here */
-static void __get_element_list(mmplayer_ini_t *ini, gchar *str, int keyword_type);
+static void __get_element_list(mmplayer_ini_t *ini, const gchar *str, int keyword_type);
static void __mm_player_ini_check_ini_status(void);
/* macro */
#define MMPLAYER_INI_GET_STRING(x_dict, x_item, x_ini, x_default) \
do { \
- gchar *str = iniparser_getstring(x_dict, x_ini, x_default); \
+ const gchar *str = iniparser_getstring(x_dict, x_ini, x_default); \
if (str && \
(strlen(str) > 0) && \
(strlen(str) < PLAYER_INI_MAX_STRLEN)) \
#define MMPLAYER_INI_GET_COLOR(x_dict, x_item, x_ini, x_default) \
do { \
- gchar *str = iniparser_getstring(x_dict, x_ini, x_default); \
+ const gchar *str = iniparser_getstring(x_dict, x_ini, x_default); \
if (str && \
(strlen(str) > 0) && \
(strlen(str) < PLAYER_INI_MAX_STRLEN)) \
}
static void
-__get_element_list(mmplayer_ini_t *ini, gchar *str, int keyword_type)
+__get_element_list(mmplayer_ini_t *ini, const gchar *str, int keyword_type)
{
gchar **list = NULL;
gchar **walk = NULL;
gint i = 0;
+ gint size = PLAYER_INI_MAX_ELEMENT;
gchar *strtmp = NULL;
gchar (*ini_keyword)[PLAYER_INI_MAX_STRLEN] = {NULL, };
break;
case KEYWORD_A_OFFLOAD_DEVICE_TYPE:
ini_keyword = ini->audio_offload_device_type;
+ size = PLAYER_INI_MAX_DEVICE_TYPE;
break;
case KEYWORD_A_OFFLOAD_MEDIA_FORMAT:
ini_keyword = ini->audio_offload_media_format;
+ size = PLAYER_INI_MAX_SUPPORTED_MEDIA_FORMAT;
break;
case KEYWORD_MEDIA_STREAM_IN_FORMAT:
ini_keyword = ini->media_stream_input_format;
+ size = PLAYER_INI_MAX_SUPPORTED_MEDIA_FORMAT;
break;
default:
goto EXIT;
break;
}
- for (walk = list; *walk && ini_keyword[i]; walk++) {
+ for (walk = list; *walk && i < size; walk++) {
strncpy(ini_keyword[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
g_strstrip(ini_keyword[i]);
ini_keyword[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
}
/* mark last item to NULL */
- if (ini_keyword[i]) {
+ if (i < size) {
ini_keyword[i][0] = '\0';
} else {
LOGE("too many keyword exist in list (%d)", i);