]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
be extra careful
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 3 Oct 2007 23:42:40 +0000 (23:42 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 3 Oct 2007 23:42:40 +0000 (23:42 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5789 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia.c
src/mod/endpoints/mod_sofia/sofia_glue.c

index 2d19f1069c39ec56ae952849e93e4d32ed036ecd..c0e9b3b8b2ef65738af88f9a004ddeaf24611c29 100644 (file)
@@ -1360,8 +1360,9 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                        }
                        
                        if (tech_pvt->sofia_private) {
-                               free(tech_pvt->sofia_private);
+                               sofia_private = tech_pvt->sofia_private;
                                tech_pvt->sofia_private = NULL;
+                               free(sofia_private);
                        }
 
                        tech_pvt->nh = NULL;            
@@ -1998,7 +1999,6 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
                                                                                                                 NULL, NULL, NULL, MODNAME, context, destination_number);
 
        if (tech_pvt->caller_profile) {
-
                /* Loop thru unknown Headers Here so we can do something with them */
                for (un = sip->sip_unknown; un; un = un->un_next) {
                        if (!strncasecmp(un->un_name, "Alert-Info", 10)) {
@@ -2031,11 +2031,12 @@ void sofia_handle_sip_i_invite(nua_t *nua, sofia_profile_t *profile, nua_handle_
                switch_channel_set_caller_profile(channel, tech_pvt->caller_profile);
        }
 
-       if (!(tech_pvt->sofia_private = malloc(sizeof(*tech_pvt->sofia_private)))) {
+       if (!(sofia_private = malloc(sizeof(*sofia_private)))) {
                abort();
        }
-       memset(tech_pvt->sofia_private, 0, sizeof(*tech_pvt->sofia_private));
-
+       memset(sofia_private, 0, sizeof(*sofia_private));
+       tech_pvt->sofia_private = sofia_private;
+       
        if ((profile->pflags & PFLAG_PRESENCE)) {
                sofia_presence_set_chat_hash(tech_pvt, sip);
        }
index be0cc68f2f96587ee1a18d4509f0f3c2bdab035c..0370c131fe6e64354a0883ddd1748cf8467cce18 100644 (file)
@@ -511,7 +511,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
 
        if (!tech_pvt->nh) {
                char *d_url = NULL, *url = NULL;
-
+               sofia_private_t *sofia_private;
                if (switch_strlen_zero(tech_pvt->dest)) {
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "URL Error! [%s]\n", tech_pvt->dest);
                        return SWITCH_STATUS_FALSE;
@@ -534,11 +534,11 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
 
                switch_safe_free(d_url);
                
-               if (!(tech_pvt->sofia_private = malloc(sizeof(*tech_pvt->sofia_private)))) {
+               if (!(sofia_private = malloc(sizeof(*sofia_private)))) {
                        abort();
                }
-               memset(tech_pvt->sofia_private, 0, sizeof(*tech_pvt->sofia_private));
-
+               memset(sofia_private, 0, sizeof(*sofia_private));
+               tech_pvt->sofia_private = sofia_private;
                switch_copy_string(tech_pvt->sofia_private->uuid, switch_core_session_get_uuid(session), sizeof(tech_pvt->sofia_private->uuid));
                nua_handle_bind(tech_pvt->nh, tech_pvt->sofia_private);