From f89a5e23d5b60d1a8f4a845b5b363ac22ebac873 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Wed, 16 Jul 2008 22:45:28 +0000 Subject: [PATCH] (daemon) plug some minor memory leaks reported by softwareelves --- daemon/daemon.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/daemon/daemon.c b/daemon/daemon.c index 9dc74c7e7..a630429f9 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -71,6 +71,9 @@ replaceStr( tr_benc * dict, const char * key, const char* value ) static void saveState( tr_session * s ) { + int i, n = 0; + char * strs[4]; + tr_benc d; if( tr_bencLoadJSONFile( myConfigFilename, &d ) ) tr_bencInitDict( &d, 16 ); @@ -81,9 +84,9 @@ saveState( tr_session * s ) replaceInt( &d, KEY_PEER_PORT, tr_sessionGetPeerPort( s ) ); replaceInt( &d, KEY_PORT_FORWARDING, tr_sessionIsPortForwardingEnabled( s ) ); replaceInt( &d, KEY_PEX_ENABLED, tr_sessionIsPexEnabled( s ) ); - replaceStr( &d, KEY_USERNAME, tr_sessionGetRPCUsername( s ) ); - replaceStr( &d, KEY_PASSWORD, tr_sessionGetRPCPassword( s ) ); - replaceStr( &d, KEY_ACL, tr_sessionGetRPCACL( s ) ); + replaceStr( &d, KEY_USERNAME, strs[n++] = tr_sessionGetRPCUsername( s ) ); + replaceStr( &d, KEY_PASSWORD, strs[n++] = tr_sessionGetRPCPassword( s ) ); + replaceStr( &d, KEY_ACL, strs[n++] = tr_sessionGetRPCACL( s ) ); replaceInt( &d, KEY_RPC_PORT, tr_sessionGetRPCPort( s ) ); replaceInt( &d, KEY_AUTH_REQUIRED, tr_sessionIsRPCPasswordEnabled( s ) ); replaceInt( &d, KEY_DSPEED, tr_sessionGetSpeedLimit( s, TR_DOWN ) ); @@ -95,6 +98,9 @@ saveState( tr_session * s ) tr_bencSaveJSONFile( myConfigFilename, &d ); tr_bencFree( &d ); tr_ninf( MY_NAME, "saved \"%s\"", myConfigFilename ); + + for( i=0; i