From 0fb61f1e4932c82add2b59bd3fee125cca4a757d Mon Sep 17 00:00:00 2001 From: Jeremy Sowden Date: Wed, 12 Jun 2019 21:37:22 +0100 Subject: [PATCH] wmail: fixed memory leaks in skip-names. --- wmail/src/config.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/wmail/src/config.c b/wmail/src/config.c index 6bc2295..692a035 100644 --- a/wmail/src/config.c +++ b/wmail/src/config.c @@ -159,7 +159,7 @@ static void AddSenderToSkipList( char *sender ) for( i = 0; i < numNames; ++i ) newList[i] = config.skipNames[i]; - newList[i] = strdup( sender ); + newList[i] = sender; newList[i+1] = NULL; free( config.skipNames ); config.skipNames = newList; @@ -202,10 +202,11 @@ void ResetConfigStrings( void ) config.backgroundColor = NULL; } - if( !( config.givenOptions & CL_CHECKSUMFILENAME )) { - free( config.checksumFileName ); - config.checksumFileName = NULL; - } + /* + * No corresponding command-line option. + */ + free( config.checksumFileName ); + config.checksumFileName = NULL; if( !( config.givenOptions & CL_CMDONMAIL )) { free( config.cmdOnMail ); @@ -216,6 +217,18 @@ void ResetConfigStrings( void ) free( config.useX11Font ); config.useX11Font = NULL; } + + /* + * No corresponding command-line option. + */ + if( config.skipNames != NULL ) + { + char **n; + for( n = config.skipNames; *n; ++n ) + free( *n ); + free( config.skipNames ); + config.skipNames = NULL; + } } static void PostProcessConfiguration( void )