]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: do not free sigmsg if was not queued
authorMoises Silva <moy@sangoma.com>
Fri, 25 Feb 2011 22:53:02 +0000 (17:53 -0500)
committerMoises Silva <moy@sangoma.com>
Fri, 25 Feb 2011 22:53:02 +0000 (17:53 -0500)
         fix type casting

libs/freetdm/src/ftdm_io.c
libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_support.c

index 947dff62e324bbb5601569a124fa0bdaa5e6f6ed..765a3b343197348922e2c6c7ca57ad497ee7f579 100644 (file)
@@ -5296,7 +5296,6 @@ FT_DECLARE(ftdm_status_t) ftdm_group_create(ftdm_group_t **group, const char *na
 static ftdm_status_t ftdm_span_trigger_signal(const ftdm_span_t *span, ftdm_sigmsg_t *sigmsg)
 {
        ftdm_status_t status = span->signal_cb(sigmsg);
-       ftdm_sigmsg_free(&sigmsg);
        return status;
 }
 
@@ -5319,6 +5318,7 @@ FT_DECLARE(ftdm_status_t) ftdm_span_trigger_signals(const ftdm_span_t *span)
        ftdm_sigmsg_t *sigmsg = NULL;
        while ((sigmsg = ftdm_queue_dequeue(span->pendingsignals))) {
                ftdm_span_trigger_signal(span, sigmsg);
+               ftdm_sigmsg_free(&sigmsg);
        }
        return FTDM_SUCCESS;
 }
index 85048bfbf072471c067e039619d67792ff5df9bb..bd3db2942a913e99270ea5aa41e60dc25ed0200b 100644 (file)
@@ -722,8 +722,10 @@ ftdm_status_t set_facility_ie_str(ftdm_channel_t *ftdmchan, uint8_t *data, uint8
 {
        ftdm_size_t len;
        uint8_t *mydata;
+       void *vdata;
 
-       if (ftdm_usrmsg_get_raw_data(ftdmchan->usrmsg, (void**)&mydata, &len) == FTDM_SUCCESS) {
+       if (ftdm_usrmsg_get_raw_data(ftdmchan->usrmsg, &vdata, &len) == FTDM_SUCCESS) {
+               mydata = vdata;
                if (len > 2 && mydata[0] == SNGISDN_Q931_FACILITY_IE_ID) {
                        len = mydata[1];
                        memcpy(data, &mydata[2], len);