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.
}
}
- 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) {