Just add logs for reading png 02/180002/1 accepted/tizen/unified/20180618.151411 submit/tizen/20180524.083402 submit/tizen/20180614.015738
authorJiyong Min <jiyong.min@samsung.com>
Thu, 24 May 2018 05:04:00 +0000 (14:04 +0900)
committerJiyong Min <jiyong.min@samsung.com>
Thu, 24 May 2018 05:05:19 +0000 (14:05 +0900)
Change-Id: I1c03e7dade49e0ced25e21ffbec162d795243f63

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

index 855dfdf..e166334 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       libmm-utility
 Summary:    Multimedia Framework Utility Library
-Version:    0.1.22
+Version:    0.1.23
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 81c924a..b21b331 100755 (executable)
@@ -46,6 +46,7 @@ typedef struct {
 
 typedef struct {
        void *mem;
+       png_size_t mem_size;
        png_size_t size;
 } png_mem_s;
 
@@ -66,7 +67,9 @@ static void __read_data_fn(png_structp png_ptr, png_bytep data, png_size_t size)
        if (png_mem_ptr == NULL || data == NULL)
                return;
 
-       if (png_mem_ptr->mem && size > 0) {
+       mm_util_debug("[TEMP][RDFN] %p, %zu, %zu, %p, %zu", png_mem_ptr->mem, png_mem_ptr->mem_size, png_mem_ptr->size, data, size);
+
+       if (png_mem_ptr->mem && size > 0 && png_mem_ptr->mem_size >= png_mem_ptr->size + size) {
                memcpy(data, png_mem_ptr->mem + png_mem_ptr->size, size);
                png_mem_ptr->size += size;
        }
@@ -140,12 +143,12 @@ static void __get_property(png_property_s *png_prop, png_structp png_ptr, png_in
 
 }
 
-static int _read_png(FILE *fp, void *memory, mm_util_png_data *decoded)
+static int _read_png(FILE *fp, void *memory, const size_t memory_size, mm_util_png_data *decoded)
 {
        png_structp png_ptr;
        png_infop info_ptr;
        guint row_index;
-       png_mem_s png_mem_ptr = {memory, 0};
+       png_mem_s png_mem_ptr = {memory, memory_size, 0};
        png_property_s png_prop;
 
        mm_util_retvm_if(((fp == NULL) && (memory == NULL)), MM_UTIL_ERROR_INVALID_PARAMETER, "invalid png image");
@@ -320,7 +323,7 @@ int mm_util_decode_from_png_file(const char *fpath, mm_util_png_data *decoded)
                return ret;
        }
 
-       ret = _read_png(fp, NULL, decoded);
+       ret = _read_png(fp, NULL, 0, decoded);
        if (ret != MM_UTIL_ERROR_NONE)
                mm_util_error("_write_png failed (%d)", ret);
 
@@ -340,7 +343,7 @@ int mm_util_decode_from_png_memory(void *memory, const size_t src_size, mm_util_
 
        mm_util_fenter();
 
-       ret = _read_png(NULL, memory, decoded);
+       ret = _read_png(NULL, memory, src_size, decoded);
        if (ret != MM_UTIL_ERROR_NONE)
                mm_util_error("_write_png failed (%d)", ret);