snat_main_t *sm = &snat_main;
vlib_worker_thread_t *w =
vlib_worker_threads + worker_index + sm->first_worker_index;
+ u32 len = vec_len (w->name);
- rmp = vl_msg_api_alloc (sizeof (*rmp) + ARRAY_LEN (w->name) - 1);
- clib_memset (rmp, 0, sizeof (*rmp) + ARRAY_LEN (w->name) - 1);
+ if (len)
+ --len;
+
+ rmp = vl_msg_api_alloc (sizeof (*rmp) + len);
+ clib_memset (rmp, 0, sizeof (*rmp) + len);
rmp->_vl_msg_id = ntohs (VL_API_NAT_WORKER_DETAILS + sm->msg_id_base);
rmp->context = context;
rmp->worker_index = htonl (worker_index);
rmp->lcore_id = htonl (w->cpu_id);
- vl_api_to_api_string (ARRAY_LEN (w->name) - 1, (char *) w->name,
- &rmp->name);
+ if (len)
+ vl_api_to_api_string (len, (char *) w->name, &rmp->name);
vl_api_send_msg (reg, (u8 *) rmp);
}