diff options
author | Inki Dae <inki.dae@samsung.com> | 2022-08-12 15:45:49 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2022-08-12 15:56:14 +0900 |
commit | 61fe126295aac4dc80f7eadc21222daaea8542da (patch) | |
tree | e1e4550995d296cc5d19cfb77f33815391d67f7a | |
parent | 920fa14b73cadbe4ecdb73ab2b3ac6eb8757d5b7 (diff) | |
download | mediavision-61fe126295aac4dc80f7eadc21222daaea8542da.tar.gz mediavision-61fe126295aac4dc80f7eadc21222daaea8542da.tar.bz2 mediavision-61fe126295aac4dc80f7eadc21222daaea8542da.zip |
mv_common: fix memory leak issuesubmit/tizen/20220817.123406submit/tizen/20220812.070529
[Version] : 0.23.15-0
[Issue type] : bug fix
Fixed memory leak issue of mv_engine_config_get_array_string_attribute_c
function.
Change-Id: Id490ddc88c8242c8ecb405230cdb4d934791b4f7
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | mv_common/src/mv_common_c.cpp | 33 | ||||
-rw-r--r-- | packaging/capi-media-vision.spec | 2 |
2 files changed, 15 insertions, 20 deletions
diff --git a/mv_common/src/mv_common_c.cpp b/mv_common/src/mv_common_c.cpp index 21071e46..76b249b6 100644 --- a/mv_common/src/mv_common_c.cpp +++ b/mv_common/src/mv_common_c.cpp @@ -657,13 +657,25 @@ int mv_engine_config_get_array_string_attribute_c( (*values)[idx] = (char*)malloc(sizeof(char) * (stringSize + 1)); if ((*values)[idx] == NULL) { LOGE("Failed to convert string to char*"); + + for (int start = idx - 1; start >= 0; --start) { + free((*values)[start]); + ((*values)[start]) = NULL; + } + + free(*values); return MEDIA_VISION_ERROR_OUT_OF_MEMORY; } if (attributeValue[idx].copy((*values)[idx], stringSize) != attributeValue[idx].size()) { LOGE("Conversion from string to char* failed"); - free((*values)[idx]); - ((*values)[idx]) = NULL; + + for (int start = idx; start >= 0; --start) { + free((*values)[start]); + ((*values)[start]) = NULL; + } + + free(*values); return MEDIA_VISION_ERROR_INVALID_OPERATION; } ((*values)[idx])[stringSize] = '\0'; @@ -672,23 +684,6 @@ int mv_engine_config_get_array_string_attribute_c( name, idx, (*values)[idx]); } - /* - if ((*value) == NULL) { - LOGE("Failed to convert string to char*"); - return MEDIA_VISION_ERROR_OUT_OF_MEMORY; - } - - if (attributeValue.copy(*value, stringSize) != attributeValue.size()) { - LOGE("Conversion from string to char* failed"); - free(*value); - (*value) = NULL; - return MEDIA_VISION_ERROR_INVALID_OPERATION; - } - (*value)[stringSize] = '\0'; - - LOGD("Attribute [%s] (value %s) has been gotten", - name, *value); - */ return ret; } diff --git a/packaging/capi-media-vision.spec b/packaging/capi-media-vision.spec index 7121aa7a..41b16b2c 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.23.14 +Version: 0.23.15 Release: 0 Group: Multimedia/Framework License: Apache-2.0 and BSD-3-Clause |