+struct lttng_error_query *lttng_error_query_condition_create(
+ const struct lttng_trigger *trigger)
+{
+ struct lttng_error_query_condition *query = NULL;
+ struct lttng_trigger *trigger_copy = NULL;
+
+ if (!trigger) {
+ goto end;
+ }
+
+ trigger_copy = lttng_trigger_copy(trigger);
+ if (!trigger_copy) {
+ goto end;
+ }
+
+ query = zmalloc(sizeof(*query));
+ if (!query) {
+ PERROR("Failed to allocate condition error query");
+ goto error;
+ }
+
+ query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION;
+ query->trigger = trigger_copy;
+ trigger_copy = NULL;
+
+error:
+ lttng_trigger_put(trigger_copy);
+end:
+ return query ? &query->parent : NULL;
+}
+