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.
This commit is contained in:
Sven Kube
2025-09-18 08:26:33 +02:00
parent b624b92656
commit 8b24a226de

View File

@@ -1790,11 +1790,14 @@ struct ast_ari_transfer_message *ast_ari_transfer_message_create(struct ast_chan
} }
} }
msg->referred_by = ast_strdup(referred_by); if (referred_by) {
if (!msg->referred_by) { msg->referred_by = ast_strdup(referred_by);
ao2_cleanup(msg); if (!msg->referred_by) {
return NULL; ao2_cleanup(msg);
return NULL;
}
} }
ast_copy_string(msg->destination, exten, sizeof(msg->destination)); ast_copy_string(msg->destination, exten, sizeof(msg->destination));
msg->protocol_id = ast_strdup(protocol_id); msg->protocol_id = ast_strdup(protocol_id);
if (!msg->protocol_id) { if (!msg->protocol_id) {