From 0e64da9748d5b6a7e61cfd0664503b7c71e1f07d Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Fri, 4 Apr 2008 21:28:54 +0000 Subject: [PATCH] fixed memory leak git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@849 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- core/plug-in/sipctrl/trans_layer.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/plug-in/sipctrl/trans_layer.cpp b/core/plug-in/sipctrl/trans_layer.cpp index a7992e10..ecd278b5 100644 --- a/core/plug-in/sipctrl/trans_layer.cpp +++ b/core/plug-in/sipctrl/trans_layer.cpp @@ -221,7 +221,9 @@ int trans_layer::send_reply(trans_bucket* bucket, sip_trans* t, delete [] reply_buf; } else if(err != TS_TERMINATED) { - + if (t->retr_buf) + delete [] t->retr_buf; + t->retr_buf = reply_buf; t->retr_len = reply_len; memcpy(&t->retr_addr,&req->remote_ip,sizeof(sockaddr_storage)); @@ -1076,6 +1078,9 @@ void trans_layer::send_non_200_ack(sip_trans* t, sip_msg* reply) ERROR("Error from transport layer\n"); delete ack_buf; } + + if (t->retr_buf) + delete [] t->retr_buf; t->retr_buf = ack_buf; t->retr_len = ack_len; @@ -1259,3 +1264,9 @@ void trans_layer::timer_expired(timer* t, trans_bucket* bucket, sip_trans* tr) } +/** EMACS ** + * Local variables: + * mode: c++ + * c-basic-offset: 4 + * End: + */