- /* Truncation is already checked at the setter level. */
- const char *tmp;
-
- status = lttng_event_rule_tracepoint_get_exclusion_at_index(
- rule, i, &tmp);
- assert(status == LTTNG_EVENT_RULE_STATUS_OK);
- strncpy(local_exclusions->names[i], tmp, LTTNG_SYMBOL_NAME_LEN);
- local_exclusions->names[i][LTTNG_SYMBOL_NAME_LEN - 1] = '\0';
+ int copy_ret;
+ const char *exclusion_str;
+
+ event_rule_status =
+ lttng_event_rule_tracepoint_get_exclusion_at_index(
+ rule, i, &exclusion_str);
+ assert(event_rule_status == LTTNG_EVENT_RULE_STATUS_OK);
+
+ copy_ret = lttng_strncpy(exclusions->names[i], exclusion_str,
+ LTTNG_SYMBOL_NAME_LEN);
+ if (copy_ret) {
+ free(exclusions);
+ exclusions = NULL;
+ ret_status = LTTNG_EVENT_RULE_GENERATE_EXCLUSIONS_STATUS_ERROR;
+ goto end;
+ }