mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-19 19:20:35 +00:00
fixes some memory leaks and redundant conditions
(closes issue #15269) Reported by: contactmayankjain Patches: patch.txt uploaded by contactmayankjain (license 740) memory_leak_stuff.trunk.diff uploaded by dvossel (license 671) Tested by: contactmayankjain, dvossel git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@201678 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -572,8 +572,7 @@ MyH323Connection::MyH323Connection(MyH323EndPoint & ep, unsigned callReference,
|
||||
{
|
||||
#ifdef H323_H450
|
||||
/* Dispatcher will free out all registered handlers */
|
||||
if (h450dispatcher)
|
||||
delete h450dispatcher;
|
||||
delete h450dispatcher;
|
||||
h450dispatcher = new H450xDispatcher(*this);
|
||||
h4502handler = new H4502Handler(*this, *h450dispatcher);
|
||||
h4504handler = new MyH4504Handler(*this, *h450dispatcher);
|
||||
@@ -1988,8 +1987,9 @@ void MyH323Connection::SetCapabilities(int caps, int dtmf_mode, void *_prefs, in
|
||||
if (cap && cap->IsUsable(*this)) {
|
||||
lastcap++;
|
||||
lastcap = localCapabilities.SetCapability(0, lastcap, cap);
|
||||
} else if (cap)
|
||||
} else {
|
||||
delete cap; /* Capability is not usable */
|
||||
}
|
||||
|
||||
dtmfMode = dtmf_mode;
|
||||
if (h323debug) {
|
||||
@@ -2001,8 +2001,9 @@ void MyH323Connection::SetCapabilities(int caps, int dtmf_mode, void *_prefs, in
|
||||
cap = new H323_UserInputCapability(H323_UserInputCapability::BasicString);
|
||||
if (cap && cap->IsUsable(*this)) {
|
||||
lastcap = localCapabilities.SetCapability(0, lastcap, cap);
|
||||
} else if (cap)
|
||||
} else {
|
||||
delete cap; /* Capability is not usable */
|
||||
}
|
||||
sendUserInputMode = SendUserInputAsString;
|
||||
} else {
|
||||
if ((dtmfMode & H323_DTMF_RFC2833) != 0) {
|
||||
@@ -2011,8 +2012,7 @@ void MyH323Connection::SetCapabilities(int caps, int dtmf_mode, void *_prefs, in
|
||||
lastcap = localCapabilities.SetCapability(0, lastcap, cap);
|
||||
else {
|
||||
dtmfMode |= H323_DTMF_SIGNAL;
|
||||
if (cap)
|
||||
delete cap; /* Capability is not usable */
|
||||
delete cap; /* Capability is not usable */
|
||||
}
|
||||
}
|
||||
if ((dtmfMode & H323_DTMF_CISCO) != 0) {
|
||||
@@ -2024,8 +2024,7 @@ void MyH323Connection::SetCapabilities(int caps, int dtmf_mode, void *_prefs, in
|
||||
dtmfMode |= H323_DTMF_SIGNAL;
|
||||
} else {
|
||||
dtmfMode |= H323_DTMF_SIGNAL;
|
||||
if (cap)
|
||||
delete cap; /* Capability is not usable */
|
||||
delete cap; /* Capability is not usable */
|
||||
}
|
||||
}
|
||||
if ((dtmfMode & H323_DTMF_SIGNAL) != 0) {
|
||||
@@ -2033,7 +2032,7 @@ void MyH323Connection::SetCapabilities(int caps, int dtmf_mode, void *_prefs, in
|
||||
cap = new H323_UserInputCapability(H323_UserInputCapability::SignalToneH245);
|
||||
if (cap && cap->IsUsable(*this))
|
||||
lastcap = localCapabilities.SetCapability(0, lastcap, cap);
|
||||
else if (cap)
|
||||
else
|
||||
delete cap; /* Capability is not usable */
|
||||
}
|
||||
sendUserInputMode = SendUserInputAsTone; /* RFC2833 transmission handled at Asterisk level */
|
||||
|
@@ -2341,6 +2341,10 @@ static void misdn_save_data(int id, char *p1, int l1, char *p2, int l2)
|
||||
|
||||
if (!rx || !tx) {
|
||||
cb_log(0,0,"Couldn't open files: %s\n",strerror(errno));
|
||||
if (rx)
|
||||
fclose(rx);
|
||||
if (tx)
|
||||
fclose(tx);
|
||||
return ;
|
||||
}
|
||||
|
||||
|
@@ -157,7 +157,7 @@ i16 string_parse(char *src, char **dest, char ***ptrs)
|
||||
TRACEJ(2,(" source len = %i\n",slen));
|
||||
|
||||
pd=*dest;
|
||||
if(pd) free(pd);
|
||||
free(pd);
|
||||
pd=calloc(slen+1,1);
|
||||
memcpy(pd,src,slen);
|
||||
*dest=pd;
|
||||
|
Reference in New Issue
Block a user