From 83b1a69ef373ad18e2fb4874b47baadbd7c0e343 Mon Sep 17 00:00:00 2001 From: Tae-Young Chung Date: Tue, 7 Feb 2017 15:22:11 +0900 Subject: [PATCH] Fixed memory leak and added null parameter handling 1. Fixed memory leak in mv_surveillance_set_event_trigger_roi() api 2. Fixed memory leak in mv_face_tracking_model_load() api 3. Fixed the issue of returning error when engine_cfg is null in mv_barcode_detect() api. Change-Id: Id56f55b9421d64ff85bffff6f3502696be0315e1 Signed-off-by: Tae-Young Chung --- mv_barcode/barcode_detector/src/mv_barcode_detect_open.cpp | 5 +++-- mv_face/face/src/mv_face_open.cpp | 7 +++++-- packaging/capi-media-vision.spec | 2 +- src/mv_surveillance.c | 5 +++++ 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/mv_barcode/barcode_detector/src/mv_barcode_detect_open.cpp b/mv_barcode/barcode_detector/src/mv_barcode_detect_open.cpp index 0349d2c..c58909b 100644 --- a/mv_barcode/barcode_detector/src/mv_barcode_detect_open.cpp +++ b/mv_barcode/barcode_detector/src/mv_barcode_detect_open.cpp @@ -56,9 +56,10 @@ int mv_barcode_detect_open( engine_cfg, "MV_BARCODE_DETECT_ATTR_TARGET", &target_val); - if (err != MEDIA_VISION_ERROR_NONE) { + if (err != MEDIA_VISION_ERROR_NONE || engine_cfg == NULL) { LOGW("mv_engine_config_get_int_attribute failed"); - return err; + /* Default value */ + target_val = 0; } /** diff --git a/mv_face/face/src/mv_face_open.cpp b/mv_face/face/src/mv_face_open.cpp index d340744..337b8b8 100644 --- a/mv_face/face/src/mv_face_open.cpp +++ b/mv_face/face/src/mv_face_open.cpp @@ -888,11 +888,14 @@ int mv_face_tracking_model_load_open( const int ret = pTrackModel->load(std::string(file_name)); if (MEDIA_VISION_ERROR_NONE != ret) { - LOGE("Error occurred when save recognition model to the file"); + LOGE("Error occurred when load tracking model from the file"); + delete static_cast(*tracking_model); + *tracking_model = NULL; + return ret; } - LOGD("Media vision recognition model has been loaded from the file [%s]", file_name); + LOGD("Media vision tracking model has been loaded from the file [%s]", file_name); return ret; } diff --git a/packaging/capi-media-vision.spec b/packaging/capi-media-vision.spec index 2f44fe3..bac4c4f 100644 --- a/packaging/capi-media-vision.spec +++ b/packaging/capi-media-vision.spec @@ -1,6 +1,6 @@ Name: capi-media-vision Summary: Media Vision library for Tizen Native API -Version: 0.3.23 +Version: 0.3.24 Release: 1 Group: Multimedia/Framework License: Apache-2.0 and BSD-2.0 diff --git a/src/mv_surveillance.c b/src/mv_surveillance.c index 461ea4d..1005ecb 100644 --- a/src/mv_surveillance.c +++ b/src/mv_surveillance.c @@ -120,6 +120,11 @@ int mv_surveillance_set_event_trigger_roi( mv_surveillance_event_trigger_s *handle = (mv_surveillance_event_trigger_s *)trigger; + if (handle->roi) { + free(handle->roi); + handle->roi = NULL; + } + handle->number_of_roi_points = number_of_points; handle->roi = (mv_point_s*) malloc(sizeof(mv_point_s) * number_of_points); -- 2.7.4