if (zstr(dst->contact)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid contact uri [%s]\n", switch_str_nil(dst->contact));
+ sofia_glue_free_destination(dst);
+ switch_safe_free(route_uri);
+ sofia_glue_release_profile(profile);
return;
}
switch_safe_free(route_uri);
sofia_glue_free_destination(dst);
-
- sofia_glue_release_profile(profile);
}
+ sofia_glue_release_profile(profile);
+
return;
} else if (to_uri || from_uri) {
if (!es) {
switch_safe_free(route_uri);
sofia_glue_free_destination(dst);
-
- sofia_glue_release_profile(profile);
}
+ sofia_glue_release_profile(profile);
+
return;
}
if (!(list = sofia_reg_find_reg_url_multi(profile, user, host))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Can't find registered user %s@%s\n", user, host);
+ sofia_glue_release_profile(profile);
return;
}
nua_handle_unref(nh);
}
- sofia_glue_release_profile(profile);
-
done:
+ if (profile) {
+ sofia_glue_release_profile(profile);
+ }
+
switch_safe_free(local_dup);
}
if (!mod_sofia_globals.profile_hash) {
switch_console_free_matches(&matches);
+ sofia_glue_release_profile(profile);
goto done;
}
if (zstr(call_id) && (dh.hits && presence_source && (!strcasecmp(presence_source, "register") || switch_stristr("register", status)))) {
+ sofia_glue_release_profile(profile);
goto done;
}