From: Jeongmo Yang Date: Wed, 26 Oct 2016 05:52:04 +0000 (+0900) Subject: Fix failure for setting attribute on 64bit environment X-Git-Tag: accepted/tizen/common/20161109.140301~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F35%2F93835%2F1;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git Fix failure for setting attribute on 64bit environment [Version] 0.10.86 [Profile] Common [Issue Type] Bug fix [Dependency module] N/A [Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-mobile_20161025.2] Change-Id: I13f5cbb2e80be7437a67876dc64895f625d68976 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 23e6b2f..2e1d8c9 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.85 +Version: 0.10.86 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_attribute.c b/src/mm_camcorder_attribute.c index 03936ca..331ac68 100644 --- a/src/mm_camcorder_attribute.c +++ b/src/mm_camcorder_attribute.c @@ -1731,6 +1731,7 @@ _mmcamcorder_set_attributes(MMHandleType handle, char **err_attr_name, const cha MMHandleType attrs = 0; int ret = MM_ERROR_NONE; mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle); + va_list var_args_copy; mmf_return_val_if_fail(handle, MM_ERROR_CAMCORDER_INVALID_ARGUMENT); /*mmf_return_val_if_fail(err_attr_name, MM_ERROR_CAMCORDER_INVALID_ARGUMENT);*/ @@ -1740,6 +1741,9 @@ _mmcamcorder_set_attributes(MMHandleType handle, char **err_attr_name, const cha return MM_ERROR_CAMCORDER_CMD_IS_RUNNING; } + /* copy var_args to keep original var_args */ + va_copy(var_args_copy, var_args); + attrs = MMF_CAMCORDER_ATTRS(handle); if (attrs) { ret = __mmcamcorder_check_valid_pair(handle, err_attr_name, attribute_name, var_args); @@ -1750,9 +1754,12 @@ _mmcamcorder_set_attributes(MMHandleType handle, char **err_attr_name, const cha if (ret == MM_ERROR_NONE) { hcamcorder->error_code = MM_ERROR_NONE; - ret = mm_attrs_set_valist(attrs, err_attr_name, attribute_name, var_args); + /* In 64bit environment, unexpected result is returned if var_args is used again. */ + ret = mm_attrs_set_valist(attrs, err_attr_name, attribute_name, var_args_copy); } + va_end(var_args_copy); + _MMCAMCORDER_UNLOCK_CMD(handle); if (ret != MM_ERROR_NONE) {