r3094 - in trunk/libmikey: include/libmikey keyagreement mikey
mikma at minisip.org
mikma at minisip.org
Sun Jan 7 15:44:35 CET 2007
Author: mikma
Date: 2007-01-07 15:44:34 +0100 (Sun, 07 Jan 2007)
New Revision: 3094
Modified:
trunk/libmikey/include/libmikey/MikeyPayloadV.h
trunk/libmikey/keyagreement/keyagreement_psk.cxx
trunk/libmikey/mikey/MikeyPayloadKEMAC.cxx
trunk/libmikey/mikey/MikeyPayloadT.cxx
trunk/libmikey/mikey/MikeyPayloadV.cxx
Log:
Fix memory leaks in keyagreement_psk, MikeyPayloadV and MikeyPayloadT.
Modified: trunk/libmikey/include/libmikey/MikeyPayloadV.h
===================================================================
--- trunk/libmikey/include/libmikey/MikeyPayloadV.h 2007-01-07 14:23:30 UTC (rev 3093)
+++ trunk/libmikey/include/libmikey/MikeyPayloadV.h 2007-01-07 14:44:34 UTC (rev 3094)
@@ -40,6 +40,7 @@
public:
MikeyPayloadV( int mac_alg, byte_t * verData );
MikeyPayloadV( byte_t * start, int lengthLimit );
+ ~MikeyPayloadV();
virtual void writeData( byte_t * start, int expectedLength );
virtual int length();
Modified: trunk/libmikey/keyagreement/keyagreement_psk.cxx
===================================================================
--- trunk/libmikey/keyagreement/keyagreement_psk.cxx 2007-01-07 14:23:30 UTC (rev 3093)
+++ trunk/libmikey/keyagreement/keyagreement_psk.cxx 2007-01-07 14:44:34 UTC (rev 3094)
@@ -31,8 +31,9 @@
macAlg(0),pskPtr(NULL),pskLengthValue(0),v(0),tSentValue(0){
}
-KeyAgreementPSK::KeyAgreementPSK( const unsigned char * pskPtr, int pskLengthValue )
- :KeyAgreement(), tSentValue( 0 ){
+KeyAgreementPSK::KeyAgreementPSK( const unsigned char * pskPtr, int pskLengthValue ):
+ KeyAgreement(),t_received(0),authKey(NULL),authKeyLength(0),
+ macAlg(0),pskPtr(NULL),pskLengthValue(0),v(0),tSentValue(0){
//policy = list<Policy_type *>::list();
this->pskLengthValue = pskLengthValue;
this->pskPtr = new unsigned char[ pskLengthValue ];
@@ -45,6 +46,10 @@
delete [] pskPtr;
}
+ if( authKey ){
+ delete[] authKey;
+ authKey = NULL;
+ }
}
int32_t KeyAgreementPSK::type(){
Modified: trunk/libmikey/mikey/MikeyPayloadKEMAC.cxx
===================================================================
--- trunk/libmikey/mikey/MikeyPayloadKEMAC.cxx 2007-01-07 14:23:30 UTC (rev 3093)
+++ trunk/libmikey/mikey/MikeyPayloadKEMAC.cxx 2007-01-07 14:44:34 UTC (rev 3094)
@@ -176,7 +176,7 @@
MikeyPayloads *output =
new MikeyPayloads( firstPayloadType, decrData,
encrDataLengthValue );
- delete [] decrData;
+ // decrData is owned and deleted by MikeyPayloads
return output;
}
Modified: trunk/libmikey/mikey/MikeyPayloadT.cxx
===================================================================
--- trunk/libmikey/mikey/MikeyPayloadT.cxx 2007-01-07 14:23:30 UTC (rev 3093)
+++ trunk/libmikey/mikey/MikeyPayloadT.cxx 2007-01-07 14:44:34 UTC (rev 3094)
@@ -172,22 +172,22 @@
bool MikeyPayloadT::checkOffset( uint64_t max ){
- struct timeval *tv;
- struct timezone *tz;
+ struct timeval tv;
+ struct timezone tz;
uint64_t current_time;
- tv = new struct timeval;
- tz = new struct timezone;
+ memset( &tv, 0, sizeof( tv ));
+ memset( &tz, 0, sizeof( tz ));
- gettimeofday( tv, tz );
+ gettimeofday( &tv, &tz );
//10^-6 / 2^-32 = 4294.967296
- uint32_t ts_frac = (uint32_t)( tv->tv_usec * 4294.967296 );
+ uint32_t ts_frac = (uint32_t)( tv.tv_usec * 4294.967296 );
uint32_t ts_sec;
switch( tsTypeValue ){
case T_TYPE_NTP_UTC:
- ts_sec = tv->tv_sec + NTP_EPOCH_OFFSET
- + 60 * tz->tz_minuteswest;
+ ts_sec = tv.tv_sec + NTP_EPOCH_OFFSET
+ + 60 * tz.tz_minuteswest;
current_time = ((uint64_t)ts_sec << 32)
| ((uint64_t)ts_frac);
/* if( current_time > tsValue ){
@@ -198,8 +198,8 @@
}*/
return false;
case T_TYPE_NTP:
- ts_sec = tv->tv_sec + NTP_EPOCH_OFFSET
- /*+ 60 * tz->tz_minuteswest*/;
+ ts_sec = tv.tv_sec + NTP_EPOCH_OFFSET
+ /*+ 60 * tz.tz_minuteswest*/;
current_time = ((uint64_t)ts_sec << 32)
| ((uint64_t)ts_frac);
/*if( current_time > tsValue ){
Modified: trunk/libmikey/mikey/MikeyPayloadV.cxx
===================================================================
--- trunk/libmikey/mikey/MikeyPayloadV.cxx 2007-01-07 14:23:30 UTC (rev 3093)
+++ trunk/libmikey/mikey/MikeyPayloadV.cxx 2007-01-07 14:44:34 UTC (rev 3094)
@@ -80,6 +80,13 @@
}
}
+MikeyPayloadV::~MikeyPayloadV(){
+ if( verDataPtr ){
+ delete[] verDataPtr;
+ verDataPtr = NULL;
+ }
+}
+
int MikeyPayloadV::length(){
return 2 + (( macAlgValue == MIKEY_PAYLOAD_V_MAC_HMAC_SHA1_160 )?20:0) ;
More information about the Minisip-devel
mailing list