{
FUNC_ENTRY;
int ret;
+ int len = 0;
char str[UAM_IBEACON_ADV_MAX_LEN + 1];
UAM_INIT_PARAMS();
UAM_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
- memcpy(str, ibeacon_adv, UAM_IBEACON_ADV_MAX_LEN + 1);
+ if (adv_len >= UAM_IBEACON_ADV_MAX_LEN)
+ len = UAM_IBEACON_ADV_MAX_LEN;
+ else
+ len = adv_len;
- g_array_append_vals(in_param1, &adv_len, sizeof(unsigned int));
+ memcpy(str, ibeacon_adv, len);
+
+ g_array_append_vals(in_param1, &len, sizeof(unsigned int));
g_array_append_vals(in_param2, &str, sizeof(str));
ret = _uam_sync_request(UAM_REQUEST_ADD_IBEACON_ADV,
in_param1, in_param2, in_param3, in_param4, &out_param);