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