< Previous by Date Date Index Next by Date >
  Thread Index  

[reSIProcate-commit] resiprocate 8700 sgodin: -fixed a difficult to find, and long standing memory leak bug in ClientSubscriptions


Projectresiprocate
New Revision8700
Committersgodin (Scott Godin)
Date2009-11-14 14:32:39 -0600 (Sat, 14 Nov 2009)

Log


 -fixed a difficult to find, and long standing memory leak bug in ClientSubscriptions
   - besides leaking memory this bug also had the potential for core dumps if AppDialogSets 
     are used with ClientSubscriptions
   - the code in BaseSubscription tries to match the CSeq in an inbound response to
     the CSeq in the last request sent out for the subscription, however the code in the
     ClientSubscription constructor was calling makeRequest on the original request, and
     causing the mLastRequest storage to have a message with a new sequence number.  Thus
     BaseSubscription::matches was never properly able to match the initial subscribe response
     to the proper ClientSubscription.  In this case a new ClientSubscription object was created,
     and we could end up with two ClientSubscription objects for the same dialogset.  This would
     cause Dialog::possiblyDie to never actually destroy the dialog or dialogset objects.  Makes 
     perfect sense right?  :)
 -made the ClientSubscription::dispatch timeout code a little safer
 

Modified: