From 9bf7a941adb4d77b87b41593cb794b7d9e9b616e Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Mon, 23 Dec 2019 19:22:41 +0900 Subject: [PATCH] Fix build error due to toolchain upgrade (gcc6 -> gcc9) : -Werror=format-truncation [Version] 0.10.192 [Profile] Common [Issue Type] Toolchain Change-Id: I4c4e5dac5b0a07be3a49b7d1daa370a16d581a94 Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 2 +- src/mm_camcorder_platform.c | 4 ++-- src/mm_camcorder_stillshot.c | 21 ++++++--------------- src/mm_camcorder_util.c | 20 ++++++++++---------- 4 files changed, 19 insertions(+), 28 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index f4c5eb4..98a59a0 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.191 +Version: 0.10.192 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_platform.c b/src/mm_camcorder_platform.c index 1400985..495f1fb 100644 --- a/src/mm_camcorder_platform.c +++ b/src/mm_camcorder_platform.c @@ -718,7 +718,7 @@ int _mmcamcorder_get_fps_array_by_resolution(MMHandleType handle, int width, int MMCamAttrsInfo *infoW = NULL; MMCamAttrsInfo *infoH = NULL; int i = 0; - char nameFps[10] = {0,}; + char nameFps[16] = {0,}; bool valid_check = false; type_int_array *fps_array; @@ -750,7 +750,7 @@ int _mmcamcorder_get_fps_array_by_resolution(MMHandleType handle, int width, int /* _mmcam_dbg_log("width :%d, height : %d\n", infoW->int_array.array[i], infoH->int_array.array[i]); */ if (infoW->int_array.array[i] == width && infoH->int_array.array[i] == height) { valid_check = true; - snprintf(nameFps, 10, "FPS%d", i); + snprintf(nameFps, sizeof(nameFps), "FPS%d", i); _mmcam_dbg_log("nameFps : %s!!!", nameFps); break; } diff --git a/src/mm_camcorder_stillshot.c b/src/mm_camcorder_stillshot.c index 5fc9c95..554273d 100644 --- a/src/mm_camcorder_stillshot.c +++ b/src/mm_camcorder_stillshot.c @@ -2231,31 +2231,22 @@ int __mmcamcorder_set_exif_basic_info(MMHandleType handle, int image_width, int /*13. EXIF_TAG_DATE_TIME_DIGITIZED*/ { - unsigned char *b; + gchar *b = NULL; time_t t; struct tm tm; - b = malloc(20 * sizeof(unsigned char)); - if (b == NULL) { - _mmcam_dbg_err("failed to alloc b"); - ret = MM_ERROR_CAMCORDER_LOW_MEMORY; - EXIF_SET_ERR(ret, EXIF_TAG_DATE_TIME); - } - - memset(b, '\0', 20); - t = time(NULL); tzset(); localtime_r(&t, &tm); - snprintf((char *)b, 20, "%04i:%02i:%02i %02i:%02i:%02i", + b = g_strdup_printf("%04i:%02i:%02i %02i:%02i:%02i", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); ret = mm_exif_set_add_entry(ed, EXIF_IFD_0, EXIF_TAG_DATE_TIME, EXIF_FORMAT_ASCII, 20, (const char *)b); if (ret != MM_ERROR_NONE) { if (ret == (int)MM_ERROR_CAMCORDER_LOW_MEMORY) - free(b); + g_free(b); EXIF_SET_ERR(ret, EXIF_TAG_DATE_TIME); } @@ -2263,7 +2254,7 @@ int __mmcamcorder_set_exif_basic_info(MMHandleType handle, int image_width, int ret = mm_exif_set_add_entry(ed, EXIF_IFD_EXIF, EXIF_TAG_DATE_TIME_ORIGINAL, EXIF_FORMAT_ASCII, 20, (const char *)b); if (ret != MM_ERROR_NONE) { if (ret == (int)MM_ERROR_CAMCORDER_LOW_MEMORY) - free(b); + g_free(b); EXIF_SET_ERR(ret, EXIF_TAG_DATE_TIME_ORIGINAL); } @@ -2271,12 +2262,12 @@ int __mmcamcorder_set_exif_basic_info(MMHandleType handle, int image_width, int ret = mm_exif_set_add_entry(ed, EXIF_IFD_EXIF, EXIF_TAG_DATE_TIME_DIGITIZED, EXIF_FORMAT_ASCII, 20, (const char *)b); if (ret != MM_ERROR_NONE) { if (ret == (int)MM_ERROR_CAMCORDER_LOW_MEMORY) - free(b); + g_free(b); EXIF_SET_ERR(ret, EXIF_TAG_DATE_TIME_DIGITIZED); } - free(b); + g_free(b); } /*5. EXIF_TAG_MAKE */ diff --git a/src/mm_camcorder_util.c b/src/mm_camcorder_util.c index bdcef72..ba98936 100644 --- a/src/mm_camcorder_util.c +++ b/src/mm_camcorder_util.c @@ -447,50 +447,50 @@ gboolean _mmcamcorder_write_loci(FILE *f, _MMCamcorderLocationInfo info) void _mmcamcorder_write_Latitude(FILE *f, int value) { - char s_latitude[9]; + char s_latitude[16]; int l_decimal = 0; int l_below_decimal = 0; l_decimal = value / 10000; if (value < 0) { if (l_decimal == 0) - snprintf(s_latitude, 5, "-%.2d.", l_decimal); + snprintf(s_latitude, sizeof(s_latitude), "-%.2d.", l_decimal); else - snprintf(s_latitude, 5, "%.2d.", l_decimal); + snprintf(s_latitude, sizeof(s_latitude), "%.2d.", l_decimal); } else { - snprintf(s_latitude, 5, "+%.2d.", l_decimal); + snprintf(s_latitude, sizeof(s_latitude), "+%.2d.", l_decimal); } l_below_decimal = value - (l_decimal * 10000); if (l_below_decimal < 0) l_below_decimal = -l_below_decimal; - snprintf(&s_latitude[4], 5, "%.4d", l_below_decimal); + snprintf(&s_latitude[4], sizeof(s_latitude) - 4, "%.4d", l_below_decimal); write_tag(f, s_latitude); } void _mmcamcorder_write_Longitude(FILE *f, int value) { - char s_longitude[10]; + char s_longitude[24]; int l_decimal = 0; int l_below_decimal = 0; l_decimal = value / 10000; if (value < 0) { if (l_decimal == 0) - snprintf(s_longitude, 6, "-%.3d.", l_decimal); + snprintf(s_longitude, sizeof(s_longitude), "-%.3d.", l_decimal); else - snprintf(s_longitude, 6, "%.3d.", l_decimal); + snprintf(s_longitude, sizeof(s_longitude), "%.3d.", l_decimal); } else { - snprintf(s_longitude, 6, "+%.3d.", l_decimal); + snprintf(s_longitude, sizeof(s_longitude), "+%.3d.", l_decimal); } l_below_decimal = value - (l_decimal * 10000); if (l_below_decimal < 0) l_below_decimal = -l_below_decimal; - snprintf(&s_longitude[5], 5, "%.4d", l_below_decimal); + snprintf(&s_longitude[5], sizeof(s_longitude) - 5, "%.4d", l_below_decimal); write_tag(f, s_longitude); } -- 2.7.4