From f8d2db808b1bfb8c5f22f8cd4bda4d9816d886d8 Mon Sep 17 00:00:00 2001 From: Semun Lee Date: Tue, 7 Jan 2020 10:38:56 +0900 Subject: [PATCH] Fix build errors for gcc 9 Change-Id: I1578d5960cfacc7099250bbdc892a4c05123a086 Signed-off-by: Semun Lee --- src/core_object/co_call.c | 4 ++-- src/core_object/co_sim.c | 7 +++++-- src/util.c | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core_object/co_call.c b/src/core_object/co_call.c index 66db3aa..20702d0 100644 --- a/src/core_object/co_call.c +++ b/src/core_object/co_call.c @@ -839,8 +839,8 @@ gboolean tcore_call_object_set_cna_info(CallObject *co, enum tcore_call_cna_mode if (len >= MAX_CALL_NAME_LEN) return FALSE; - strncpy(co->cna.name, name, len); - co->cna.name[len] = '\0'; + strncpy(co->cna.name, name, sizeof(co->cna.name)); + co->cna.name[sizeof(co->cna.name) - 1] = '\0'; co->cna.mode = mode; diff --git a/src/core_object/co_sim.c b/src/core_object/co_sim.c index 5a9aeb3..0dc3d48 100644 --- a/src/core_object/co_sim.c +++ b/src/core_object/co_sim.c @@ -1110,6 +1110,7 @@ static const char *_convert_language_code_to_string(enum tel_sim_language_type l char *tcore_sim_encode_li(int *out_length, struct tel_sim_language *p_in) { int i = 0; + int tmp_size; char *tmp_out = NULL; if (out_length == NULL || p_in == NULL) { @@ -1117,14 +1118,16 @@ char *tcore_sim_encode_li(int *out_length, struct tel_sim_language *p_in) return NULL; } - tmp_out = (char *)malloc((p_in->language_count) * 2); + tmp_size = p_in->language_count * 2 + 1; + tmp_out = (char *)malloc(tmp_size); if (!tmp_out) return NULL; memset((void *)tmp_out, 0xff, (p_in->language_count) * 2); + tmp_out[tmp_size - 1] = '\0'; for (i = 0; i < p_in->language_count; i++) { - strncpy((char *) &tmp_out[i * 2], _convert_language_code_to_string(p_in->language[i]), 2); + memcpy((char *) &tmp_out[i * 2], _convert_language_code_to_string(p_in->language[i]), 2); dbg("sim_encode_li: p_out[%s]:[%x][%x]", tmp_out, tmp_out[i*2], tmp_out[(i*2)+1]); } diff --git a/src/util.c b/src/util.c index 9b772af..695b50a 100644 --- a/src/util.c +++ b/src/util.c @@ -233,7 +233,7 @@ static void _convert_gsm_to_utf8(unsigned char *dest, unsigned short *dest_len, unsigned char *raw_unicode = NULL; unsigned short tmp_dest[SAT_TEXT_STRING_LEN_MAX]; - memset(tmp_dest, 0 , SAT_TEXT_STRING_LEN_MAX); + memset(tmp_dest, 0 , SAT_TEXT_STRING_LEN_MAX * sizeof(unsigned short)); _convert_gsm_to_unicode(tmp_dest, SAT_TEXT_STRING_LEN_MAX, src, src_len); while (tmp_dest[tmp_len] != '\0') -- 2.7.4