enum lttng_tracking_policy *policy)
{
void *reply = NULL;
- int reply_ret;
+ int reply_ret, copy_ret;
enum lttng_process_attr_tracker_handle_status status =
LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_OK;
struct lttcomm_session_msg lsm = {
goto end;
}
- lttng_ctl_copy_string(lsm.session.name, tracker->session_name,
+ copy_ret = lttng_strncpy(lsm.session.name, tracker->session_name,
sizeof(lsm.session.name));
+ if (copy_ret) {
+ status = LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_INVALID;
+ goto end;
+ }
+
lsm.domain.type = tracker->domain;
lsm.u.process_attr_tracker_get_tracking_policy.process_attr =
(int32_t) tracker->process_attr;
const struct lttng_process_attr_tracker_handle *tracker,
enum lttng_tracking_policy policy)
{
- int reply_ret;
+ int reply_ret, copy_ret;
enum lttng_process_attr_tracker_handle_status status =
LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_OK;
struct lttcomm_session_msg lsm = {
goto end;
}
- lttng_ctl_copy_string(lsm.session.name, tracker->session_name,
- sizeof(lsm.session.name));
+ copy_ret = lttng_strncpy(lsm.session.name, tracker->session_name,
+ sizeof(lsm.session.name));
+ if (copy_ret) {
+ status = LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_INVALID;
+ goto end;
+ }
+
lsm.domain.type = tracker->domain;
lsm.u.process_attr_tracker_set_tracking_policy.process_attr =
(int32_t) tracker->process_attr;
goto end; \
} \
\
- lttng_ctl_copy_string(lsm.session.name, tracker->session_name, \
+ ret = lttng_strncpy(lsm.session.name, tracker->session_name, \
sizeof(lsm.session.name)); \
+ if (ret) { \
+ status = LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_INVALID; \
+ goto end; \
+ } \
+ \
lsm.domain.type = tracker->domain; \
lsm.u.process_attr_tracker_add_remove_include_value \
.process_attr = \
goto end; \
} \
\
- lttng_ctl_copy_string(lsm.session.name, tracker->session_name, \
+ ret = lttng_strncpy(lsm.session.name, tracker->session_name, \
sizeof(lsm.session.name)); \
+ if (ret) { \
+ status = LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_INVALID; \
+ goto end; \
+ } \
+ \
lsm.domain.type = tracker->domain; \
lsm.u.process_attr_tracker_add_remove_include_value \
.process_attr = \
const struct lttng_process_attr_values **values)
{
void *reply = NULL;
- int reply_ret;
+ int reply_ret, copy_ret;
enum lttng_process_attr_tracker_handle_status status =
LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_OK;
struct lttcomm_session_msg lsm = {
lttng_process_attr_values_destroy(tracker->inclusion_set);
tracker->inclusion_set = NULL;
- lttng_ctl_copy_string(lsm.session.name, tracker->session_name,
+ copy_ret = lttng_strncpy(lsm.session.name, tracker->session_name,
sizeof(lsm.session.name));
+ if (copy_ret) {
+ status = LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_INVALID;
+ goto end;
+ }
+
lsm.domain.type = tracker->domain;
lsm.u.process_attr_tracker_get_tracking_policy.process_attr =
(int32_t) tracker->process_attr;
(pid_t) pid);
ret_code = handle_status_to_error_code(handle_status);
end:
+ lttng_process_attr_tracker_handle_destroy(tracker_handle);
return ret_code == LTTNG_OK ? 0 : -ret_code;
}
ret_code = LTTNG_ERR_PID_NOT_TRACKED;
}
end:
+ lttng_process_attr_tracker_handle_destroy(tracker_handle);
return ret_code == LTTNG_OK ? 0 : -ret_code;
}