Bug fix of realpath check. File does not exist for some case. so apply realpath only... 35/164235/1 tizen_4.0_tv accepted/tizen/4.0/unified/20171219.072308 submit/tizen_4.0/20171218.072204 tizen_4.0.IoT.p2_release
authorhj kim <backto.kim@samsung.com>
Mon, 18 Dec 2017 06:37:18 +0000 (15:37 +0900)
committerhj kim <backto.kim@samsung.com>
Mon, 18 Dec 2017 07:16:45 +0000 (16:16 +0900)
Change-Id: I53ab9908425d750a75fca0c76cc081b4d53e671f

jpeg/mm_util_jpeg.c
packaging/libmm-utility.spec
png/mm_util_png.c

index d57e995a22a0c48b3253fe5f447d2d79c8731545..a385449d31e2b0f669910ff864411bd413601409 100755 (executable)
@@ -478,26 +478,35 @@ static int __mm_image_encode_to_jpeg_file_with_libjpeg(const char *pFileName, vo
 
        jpeg_create_compress(&cinfo);
 
-       realPATH = realpath(pFileName, NULL);
-       if (realPATH == NULL) {
-               mm_util_error("realpath failed");
-               return MM_UTIL_ERROR_NO_SUCH_FILE;
-       }
-       if (!strncmp(pFileName, realPATH, strlen(pFileName))) {
-               if ((fpWriter = fopen(pFileName, "wb")) == NULL) {
-                       mm_util_error("[infile] file open [%s] failed", pFileName);
-                       mm_util_stderror("file open failed");
+       if (g_file_test(pFileName, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               realPATH = realpath(pFileName, NULL);
+               if (realPATH == NULL) {
+                       mm_util_error("realpath failed [%s]", pFileName);
+                       mm_util_stderror("realpath failed");
+                       return MM_UTIL_ERROR_NO_SUCH_FILE;
+               }
+               if (!strncmp(pFileName, realPATH, strlen(pFileName))) {
+                       if ((fpWriter = fopen(pFileName, "wb")) == NULL) {
+                               mm_util_error("[infile] file open [%s] failed", pFileName);
+                               mm_util_stderror("file open failed");
+                               MMUTIL_SAFE_FREE(realPATH);
+                               return MM_UTIL_ERROR_INVALID_OPERATION;
+                       }
+               } else {
+                       mm_util_error("[infile] file [%s] is symlink", pFileName);
                        MMUTIL_SAFE_FREE(realPATH);
                        return MM_UTIL_ERROR_NO_SUCH_FILE;
                }
-       } else {
-               mm_util_error("[infile] file [%s] is symlink", pFileName);
+
                MMUTIL_SAFE_FREE(realPATH);
-               return MM_UTIL_ERROR_NO_SUCH_FILE;
+       } else {
+               if ((fpWriter = fopen(pFileName, "wb")) == NULL) {
+                       mm_util_error("[infile] file open [%s] failed", pFileName);
+                       mm_util_stderror("file open failed");
+                       return MM_UTIL_ERROR_INVALID_OPERATION;
+               }
        }
 
-       MMUTIL_SAFE_FREE(realPATH);
-
        jpeg_stdio_dest(&cinfo, fpWriter);
        cinfo.image_width = width;
        cinfo.image_height = height;
index 9e878f1f200eb861ce13f986dde43fd56b9fb6fe..2c1148494ec23ad286f1c236d0057db283e858ce 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       libmm-utility
 Summary:    Multimedia Framework Utility Library
-Version:    0.47
+Version:    0.48
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 9f08ca86e6f6d3f16bc59996e8e048ddd0755639..518df5b987abf65f65889ef39a78a1a870d821dd 100755 (executable)
@@ -484,24 +484,33 @@ int mm_util_encode_to_png_file(void **data, mm_util_png_data *encoded, const cha
                return MM_UTIL_ERROR_NO_SUCH_FILE;
        }
 
-       realPATH = realpath(fpath, NULL);
-       if (realPATH == NULL) {
-               mm_util_error("realpath failed");
-               return MM_UTIL_ERROR_NO_SUCH_FILE;
-       }
+       if (g_file_test(fpath, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               realPATH = realpath(fpath, NULL);
+               if (realPATH == NULL) {
+                       mm_util_error("realpath failed [%s]", fpath);
+                       mm_util_stderror("realpath failed");
+                       return MM_UTIL_ERROR_NO_SUCH_FILE;
+               }
 
-       if (!strncmp(fpath, realPATH, strlen(fpath))) {
-               if ((fp = fopen(fpath, "w")) == NULL) {
-                       mm_util_stderror("file open failed");
+               if (!strncmp(fpath, realPATH, strlen(fpath))) {
+                       if ((fp = fopen(fpath, "w")) == NULL) {
+                               mm_util_stderror("file open failed");
+                               MMUTIL_SAFE_FREE(realPATH);
+                               return MM_UTIL_ERROR_INVALID_OPERATION;
+                       }
+               } else {
+                       mm_util_error("file is symbolic link");
                        MMUTIL_SAFE_FREE(realPATH);
                        return MM_UTIL_ERROR_NO_SUCH_FILE;
                }
-       } else {
-               mm_util_error("file is symbolic link");
                MMUTIL_SAFE_FREE(realPATH);
-               return MM_UTIL_ERROR_NO_SUCH_FILE;
+       } else {
+               if ((fp = fopen(fpath, "w")) == NULL) {
+                       mm_util_error("[infile] file open [%s] failed", fpath);
+                       mm_util_stderror("file open failed");
+                       return MM_UTIL_ERROR_INVALID_OPERATION;
+               }
        }
-       MMUTIL_SAFE_FREE(realPATH);
 
        ret = write_png(data, encoded, fp);