Fix coverity issue (INTEGER_OVERFLOW)
[platform/core/multimedia/libmm-fileinfo.git] / utils / mm_file_util_tag.c
index bdcaac8..42844c6 100644 (file)
@@ -1961,10 +1961,10 @@ int ParseSpatialVideoMetadataFromXMLString(const char *xmlStr, MMFileFormatConte
 int MMFileUtilGetMetaDataFromMKV(MMFileFormatContext *formatContext)
 {
        MMFileIOHandle *fp = NULL;
-       int probe_size = 10000;
+       long long probe_size = 10000;
        unsigned char *buffer = NULL;
        int ret = 0;
-       int i;
+       long long i;
        long long file_size = 0;
 
        MMFILE_WEBM_PROJ_V2_BOX v2box = { 0, };
@@ -2007,7 +2007,7 @@ int MMFileUtilGetMetaDataFromMKV(MMFileFormatContext *formatContext)
        for (i = 0; i + 3 < probe_size; ++i) {
                if (*(unsigned int *)(buffer + i) == FOURCC('e', 'q', 'u', 'i') ||
                                *(unsigned int *)(buffer + i) == FOURCC('c', 'b', 'm', 'p')) {
-                       debug_msg(DEBUG, "projection data found at offset %d bytes", i);
+                       debug_msg(DEBUG, "projection data found at offset %lld bytes", i);
                        break;
                }
        }
@@ -2018,7 +2018,7 @@ int MMFileUtilGetMetaDataFromMKV(MMFileFormatContext *formatContext)
                goto exit;
        }
 
-       if ((i - (int)sizeof(MMFILE_WEBM_PROJ_V2_BOX)) < 0) {
+       if ((i - sizeof(MMFILE_WEBM_PROJ_V2_BOX)) < 0) {
                debug_error(DEBUG, "error: invalid supposed projection info location");
                ret = MMFILE_UTIL_FAIL;
                goto exit;
@@ -2127,6 +2127,10 @@ int MMFileUtilGetMetaDataFromMP4(MMFileFormatContext *formatContext)
        }
 
        basic_header.start_offset = mmfile_tell(fp);
+       if (basic_header.start_offset < 0) {
+               debug_error(DEBUG, "error: mmfile_tell");
+               goto exit;
+       }
 
        if (g_junk_counter_limit == 0)
                g_junk_counter_limit = mmfile_get_int_from_ini(MMFILE_INI_JUNKCNTLIMIT, MMFILE_DEFAULT_JUNKCNTLIMIT);
@@ -2428,6 +2432,9 @@ static bool release_characterset_array(char **charset_array)
 {
        int i = 0;
 
+       if (!charset_array)
+               return false;
+
        for (i = 0; i < AV_ID3V2_MAX; i++) {
                if (charset_array[i] != NULL) {
                        free(charset_array[i]);
@@ -2435,10 +2442,8 @@ static bool release_characterset_array(char **charset_array)
                }
        }
 
-       if (charset_array != NULL) {
-               free(charset_array);
-               charset_array = NULL;
-       }
+       free(charset_array);
+       charset_array = NULL;
 
        return true;
 }
@@ -3383,7 +3388,7 @@ void mm_file_id3tag_restore_content_info(AvFileContentInfo *pInfo)
        if (pInfo->tagInfo[AV_ID3TAG_GENRE].value) {
                /* Check integer */
                if (!__get_genre_num(pInfo->tagInfo[AV_ID3TAG_GENRE].value, &genre_id)) {
-                       debug_log(RELEASE, "genre information is not integer [%s]", pInfo->tagInfo[AV_ID3TAG_GENRE].value);
+                       debug_msg(RELEASE, "genre information is not integer [%s]", pInfo->tagInfo[AV_ID3TAG_GENRE].value);
                        return;
                }