diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index df72a5e4a6..71056e6189 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -5819,15 +5819,20 @@ static int register_verify(int callno, struct sockaddr_in *sin, struct iax_ies * ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */ return_unref: - ast_string_field_set(iaxs[callno], peer, peer); - /* Choose lowest expiry number */ - if (expire && (expire < iaxs[callno]->expiry)) - iaxs[callno]->expiry = expire; + if (iaxs[callno]) { + ast_string_field_set(iaxs[callno], peer, peer); + + /* Choose lowest expiry number */ + if (expire && (expire < iaxs[callno]->expiry)) { + iaxs[callno]->expiry = expire; + } + } res = 0; - if (p) + if (p) { peer_unref(p); + } return res; }