From 9e50fb38805c9570d4595b98fb384678e5826f85 Mon Sep 17 00:00:00 2001 From: Sven Kube Date: Thu, 18 Sep 2025 08:26:33 +0200 Subject: [PATCH] stasis_channels.c: Add null check for referred_by in ast_ari_transfer_message_create When handling SIP transfers via ARI, the `referred_by` field in `transfer_ari_state` may be null, since SIP REFER requests are not required to include a `Referred-By` header. Without this check, a null value caused the transfer to fail and triggered a NOTIFY with a 500 Internal Server Error. --- main/stasis_channels.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/main/stasis_channels.c b/main/stasis_channels.c index 4e712e03ae..76173aa352 100644 --- a/main/stasis_channels.c +++ b/main/stasis_channels.c @@ -1797,11 +1797,14 @@ struct ast_ari_transfer_message *ast_ari_transfer_message_create(struct ast_chan } } - msg->referred_by = ast_strdup(referred_by); - if (!msg->referred_by) { - ao2_cleanup(msg); - return NULL; + if (referred_by) { + msg->referred_by = ast_strdup(referred_by); + if (!msg->referred_by) { + ao2_cleanup(msg); + return NULL; + } } + ast_copy_string(msg->destination, exten, sizeof(msg->destination)); msg->protocol_id = ast_strdup(protocol_id); if (!msg->protocol_id) {