Add to check null pointer dereferenced 57/191457/4
authorjiyong.min <jiyong.min@samsung.com>
Wed, 17 Oct 2018 08:19:08 +0000 (17:19 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Thu, 18 Oct 2018 01:03:07 +0000 (10:03 +0900)
Change-Id: I35f399e32dfd8ca5b347dab8f8171aba93714955

src/image_util_decode.c
src/image_util_encode.c

index 33a9bcd..6368288 100755 (executable)
@@ -132,6 +132,7 @@ int image_util_decode_set_input_path(image_util_decode_h handle, const char *pat
        decode_s *_handle = (decode_s *) handle;
        unsigned char *image_header = NULL;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if(!IMAGE_UTIL_STRING_VALID(path), IMAGE_UTIL_ERROR_NO_SUCH_FILE, "Invalid path");
 
        if (_handle->src_buffer)
@@ -160,6 +161,7 @@ int image_util_decode_set_input_buffer(image_util_decode_h handle, const unsigne
        int err = IMAGE_UTIL_ERROR_NONE;
        decode_s *_handle = (decode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if((src_buffer == NULL || src_size == 0), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid input buffer");
 
        IMAGE_UTIL_SAFE_FREE(_handle->path);
@@ -184,6 +186,7 @@ int image_util_decode_set_output_buffer(image_util_decode_h handle, unsigned cha
 
        image_util_fenter();
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if(dst_buffer == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
 
        _handle->dst_buffer = (void **)dst_buffer;
@@ -195,6 +198,7 @@ int image_util_decode_set_colorspace(image_util_decode_h handle, image_util_colo
 {
        decode_s *_handle = (decode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_TYPE_CHECK(_handle->image_type);
 
        image_util_retvm_if((is_valid_colorspace(colorspace) == FALSE), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid colorspace");
@@ -209,6 +213,7 @@ int image_util_decode_set_jpeg_downscale(image_util_decode_h handle, image_util_
 {
        decode_s *_handle = (decode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_SUPPORT_TYPE_CHECK(_handle->image_type, IMAGE_UTIL_JPEG);
 
        image_util_retvm_if((down_scale < 0 || down_scale >= _NUM_OF_SCALE), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "downscale is invalid");
@@ -297,8 +302,11 @@ int image_util_decode_run(image_util_decode_h handle, unsigned long *width, unsi
        unsigned long _height = 0;
        size_t _size = 0;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if((_handle->path == NULL && _handle->src_buffer == NULL), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid input");
        image_util_retvm_if(_handle->dst_buffer == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid output");
+       image_util_retvm_if(width == NULL || height == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid width or height");
+       image_util_retvm_if(size == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid size");
 
        err = _image_util_decode_internal(_handle, &_width, &_height, &_size);
        image_util_retvm_if(err != IMAGE_UTIL_ERROR_NONE, err, "_image_util_decode_internal failed");
@@ -363,6 +371,7 @@ int image_util_decode_run_async(image_util_decode_h handle, image_util_decode_co
 
        image_util_fenter();
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if((_handle->path == NULL && _handle->src_buffer == NULL), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid input");
        image_util_retvm_if(_handle->dst_buffer == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid output");
        image_util_retvm_if((completed_cb == NULL), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid callback");
@@ -394,6 +403,8 @@ int image_util_decode_destroy(image_util_decode_h handle)
 {
        decode_s *_handle = (decode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
+
        image_util_fenter();
 
        /* g_thread_exit(handle->thread); */
index 075421d..5cc3cb4 100755 (executable)
@@ -114,6 +114,7 @@ int image_util_encode_set_resolution(image_util_encode_h handle, unsigned long w
        int err = IMAGE_UTIL_ERROR_NONE;
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if((width == 0 || height == 0), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid resolution");
 
        /* multi-src for a-gif */
@@ -137,6 +138,7 @@ int image_util_encode_set_colorspace(image_util_encode_h handle, image_util_colo
 {
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_TYPE_CHECK(_handle->image_type);
 
        image_util_retvm_if((is_valid_colorspace(colorspace) == FALSE), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid colorspace");
@@ -151,6 +153,7 @@ int image_util_encode_set_quality(image_util_encode_h handle, int quality)
 {
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_SUPPORT_TYPE_CHECK(_handle->image_type, IMAGE_UTIL_JPEG);
 
        image_util_retvm_if((quality <= 0 || quality > 100), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid quality");
@@ -164,6 +167,7 @@ int image_util_encode_set_png_compression(image_util_encode_h handle, image_util
 {
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_SUPPORT_TYPE_CHECK(_handle->image_type, IMAGE_UTIL_PNG);
 
        image_util_retvm_if((compression < IMAGE_UTIL_PNG_COMPRESSION_0 || compression > IMAGE_UTIL_PNG_COMPRESSION_9), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid compression value");
@@ -178,6 +182,7 @@ int image_util_encode_set_gif_frame_delay_time(image_util_encode_h handle, unsig
        int err = IMAGE_UTIL_ERROR_NONE;
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        IMAGE_UTIL_SUPPORT_TYPE_CHECK(_handle->image_type, IMAGE_UTIL_GIF);
 
        image_util_retvm_if((delay_time > INT_MAX), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid delay time");
@@ -199,6 +204,7 @@ int image_util_encode_set_input_buffer(image_util_encode_h handle, const unsigne
        int err = IMAGE_UTIL_ERROR_NONE;
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if((src_buffer == NULL), IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid input buffer");
 
        /* multi-src for a-gif */
@@ -220,6 +226,7 @@ int image_util_encode_set_output_path(image_util_encode_h handle, const char *pa
 {
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if(!IMAGE_UTIL_STRING_VALID(path), IMAGE_UTIL_ERROR_NO_SUCH_FILE, "Invalid path");
 
        if (_handle->dst_buffer)
@@ -237,6 +244,7 @@ int image_util_encode_set_output_buffer(image_util_encode_h handle, unsigned cha
 {
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
        image_util_retvm_if(dst_buffer == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid output buffer");
 
        IMAGE_UTIL_SAFE_FREE(_handle->path);
@@ -314,8 +322,7 @@ int image_util_encode_run(image_util_encode_h handle, unsigned long long *size)
        err = _image_util_encode_internal(_handle);
        image_util_retvm_if((err != IMAGE_UTIL_ERROR_NONE), err, "_image_util_encode_internal failed");
 
-       if (size)
-               *size = _handle->dst_size;
+       *size = _handle->dst_size;
 
        return err;
 }
@@ -390,6 +397,8 @@ int image_util_encode_destroy(image_util_encode_h handle)
        int err = IMAGE_UTIL_ERROR_NONE;
        encode_s *_handle = (encode_s *) handle;
 
+       image_util_retvm_if(_handle == NULL, IMAGE_UTIL_ERROR_INVALID_PARAMETER, "Invalid Handle");
+
        image_util_debug("image_util_encode_destroy");
 
        /* g_thread_exit(handle->thread); */