- if (ctx->ctx == LTTNG_EVENT_CONTEXT_APP_CONTEXT) {
- size_t provider_len, ctx_len;
- const char *provider_name = ctx->u.app_ctx.provider_name;
- const char *ctx_name = ctx->u.app_ctx.ctx_name;
-
- if (!provider_name || !ctx_name) {
- ret = -LTTNG_ERR_INVALID;
- goto end;
- }
-
- provider_len = strlen(provider_name);
- if (provider_len == 0) {
- ret = -LTTNG_ERR_INVALID;
- goto end;
- }
- lsm.u.context.provider_name_len = provider_len;
-
- ctx_len = strlen(ctx_name);
- if (ctx_len == 0) {
- ret = -LTTNG_ERR_INVALID;
- goto end;
- }
- lsm.u.context.context_name_len = ctx_len;
-
- len = provider_len + ctx_len;
- buf = zmalloc(len);
- if (!buf) {
- ret = -LTTNG_ERR_NOMEM;
- goto end;
- }
-
- memcpy(buf, provider_name, provider_len);
- memcpy(buf + provider_len, ctx_name, ctx_len);
+ ret = lttng_event_context_serialize(ctx, &buffer);
+ if (ret) {
+ ret = -LTTNG_ERR_INVALID;
+ goto end;