From: jiyong.min Date: Wed, 17 Oct 2018 08:19:08 +0000 (+0900) Subject: Add to check null pointer dereferenced X-Git-Tag: submit/tizen/20181106.000712^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9eabfa84f1510f1bdcceb495299c5ffc90840b46;p=platform%2Fcore%2Fapi%2Fimage-util.git Add to check null pointer dereferenced Change-Id: I35f399e32dfd8ca5b347dab8f8171aba93714955 --- diff --git a/src/image_util_decode.c b/src/image_util_decode.c index 33a9bcd..6368288 100755 --- a/src/image_util_decode.c +++ b/src/image_util_decode.c @@ -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); */ diff --git a/src/image_util_encode.c b/src/image_util_encode.c index 075421d..5cc3cb4 100755 --- a/src/image_util_encode.c +++ b/src/image_util_encode.c @@ -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); */