From: Urban Wallasch Date: Wed, 21 Apr 2021 17:23:16 +0000 (+0200) Subject: * Cleanup heap in kaoupload.c on exit. X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=2875b5767c22bcda77b389db10c454df5f25c220;p=kaotools.git * Cleanup heap in kaoupload.c on exit. --- diff --git a/kaoupload.c b/kaoupload.c index 0d8b3b6..5f078dc 100644 --- a/kaoupload.c +++ b/kaoupload.c @@ -51,6 +51,13 @@ static void sig_handler( int signum ){ fprintf( stderr, "\nReceived signal %d, wrapping up gracefully.\n", signum ); } +static void doExit( int ec ) { + free( cfg.user ); + free( cfg.pass ); + free( cfg.url ); + exit( ec ); +} + static void cerr( const char *msg, int eno ) { fprintf( stderr, "ERROR: %s", msg ); if ( eno ) @@ -67,7 +74,7 @@ static void err( const char *msg, int eno ) { static void die( const char *msg, int eno ) { err( msg, eno ); - exit( EXIT_FAILURE ); + doExit( EXIT_FAILURE ); } static curl_off_t str_to_bwl( const char *s ) { @@ -347,7 +354,7 @@ static void usage( char *pname ) { ); printf( "Defaults for bandwidth limit, user, password and URL are taken " "from environment and configuration file, in this order.\n" ); - exit( EXIT_FAILURE ); + doExit( EXIT_FAILURE ); } int main( int argc, char *argv[] ) { @@ -432,5 +439,5 @@ int main( int argc, char *argv[] ) { free( cfg.user ); free( cfg.pass ); free( cfg.url ); - exit( res ? EXIT_FAILURE : EXIT_SUCCESS ); + doExit( res ? EXIT_FAILURE : EXIT_SUCCESS ); }