summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInki Dae <inki.dae@samsung.com>2022-08-12 15:45:49 +0900
committerInki Dae <inki.dae@samsung.com>2022-08-12 15:56:14 +0900
commit61fe126295aac4dc80f7eadc21222daaea8542da (patch)
treee1e4550995d296cc5d19cfb77f33815391d67f7a
parent920fa14b73cadbe4ecdb73ab2b3ac6eb8757d5b7 (diff)
downloadmediavision-61fe126295aac4dc80f7eadc21222daaea8542da.tar.gz
mediavision-61fe126295aac4dc80f7eadc21222daaea8542da.tar.bz2
mediavision-61fe126295aac4dc80f7eadc21222daaea8542da.zip
[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.cpp33
-rw-r--r--packaging/capi-media-vision.spec2
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