{0},
{0},
NULL,
+ },
+ {
+ MM_CAM_GDBUS_CONNECTION,
+ "gdbus-connection",
+ MMF_VALUE_TYPE_DATA,
+ MM_ATTRS_FLAG_RW,
+ {(void*)NULL},
+ MM_ATTRS_VALID_TYPE_NONE,
+ {0},
+ {0},
+ NULL,
}
};
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);*/
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);
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) {