[asterisk-commits] kpfleming: branch 1.4 r45621 -
/branches/1.4/channels/chan_sip.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Wed Oct 18 16:49:39 MST 2006
Author: kpfleming
Date: Wed Oct 18 18:49:39 2006
New Revision: 45621
URL: http://svn.digium.com/view/asterisk?rev=45621&view=rev
Log:
don't leak memory when a chan_sip thread is destroyed that has a thread-local temp_pvt allocated
Modified:
branches/1.4/channels/chan_sip.c
Modified: branches/1.4/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/channels/chan_sip.c?rev=45621&r1=45620&r2=45621&view=diff
==============================================================================
--- branches/1.4/channels/chan_sip.c (original)
+++ branches/1.4/channels/chan_sip.c Wed Oct 18 18:49:39 2006
@@ -1146,8 +1146,10 @@
int recheck;
} regl;
+static void temp_pvt_cleanup(void *);
+
/*! \brief A per-thread temporary pvt structure */
-AST_THREADSTORAGE(ts_temp_pvt, temp_pvt_init);
+AST_THREADSTORAGE_CUSTOM(ts_temp_pvt, temp_pvt_init, temp_pvt_cleanup);
/*! \todo Move the sip_auth list to AST_LIST */
static struct sip_auth *authl = NULL; /*!< Authentication list for realm authentication */
@@ -5560,6 +5562,13 @@
add_header(&resp, "X-Asterisk-HangupCauseCode", buf);
}
return send_response(p, &resp, reliable, seqno);
+}
+
+static void temp_pvt_cleanup(void *data)
+{
+ struct sip_pvt *p = data;
+
+ ast_string_field_free_pools(p);
}
/*! \brief Transmit response, no retransmits, using a temporary pvt structure */
More information about the asterisk-commits
mailing list