diff options
| author | Sam Varshavchik | 2022-01-17 15:14:06 -0500 | 
|---|---|---|
| committer | Sam Varshavchik | 2022-01-17 15:15:02 -0500 | 
| commit | 6ff4d7ff79a967b58b6eca3506b48c5d3219f3dc (patch) | |
| tree | 651e32310c73c86c316db520174fe89e63bc5e7f /imap/imapd.c | |
| parent | 49028a9eb32a570b3bc73777d0474e458c1c1949 (diff) | |
| download | courier-libs-6ff4d7ff79a967b58b6eca3506b48c5d3219f3dc.tar.bz2 | |
Fix minor memory leaks.
bdbobj_nextkey can leak memory.
Looks like some glibc or valgrind configs detect memory leaks from putenv(),
use setenv() instead. It's POSIX 2001.
Take this opportunity to clean up the test script.
Diffstat (limited to 'imap/imapd.c')
| -rw-r--r-- | imap/imapd.c | 23 | 
1 files changed, 6 insertions, 17 deletions
| diff --git a/imap/imapd.c b/imap/imapd.c index c0a4aa9..ccc1991 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -6591,16 +6591,11 @@ int	uid=0;  static void dogethostname()  { -char	buf[2048]; -char	*p; +	char	buf[2048];  	if (gethostname(buf, sizeof(buf)) < 0)  		strcpy(buf, "courier-imap"); -	p=malloc(strlen(buf)+sizeof("HOSTNAME=")); -	if (!p) -		write_error_exit(0); -	strcat(strcpy(p, "HOSTNAME="), buf); -	putenv(p); +	setenv("HOSTNAME", buf, 1);  }  #if 0 @@ -6764,14 +6759,13 @@ int main(int argc, char **argv)  	{  		const char *p; -		putenv("TCPREMOTEIP=127.0.0.1"); -		putenv("TCPREMOTEPORT=0"); +		setenv("TCPREMOTEIP", "127.0.0.1", 1); +		setenv("TCPREMOTEPORT", "0", 1);  		p=getenv("AUTHENTICATED");  		if (!p || !*p)  		{  			struct passwd *pw=getpwuid(getuid()); -			char *me;  			if (!pw)  			{ @@ -6781,12 +6775,7 @@ int main(int argc, char **argv)  				exit(1);  			} -			me=malloc(sizeof("AUTHENTICATED=")+strlen(pw->pw_name)); -			if (!me) -				write_error_exit(0); - -			strcat(strcpy(me, "AUTHENTICATED="), pw->pw_name); -			putenv(me); +			setenv("AUTHENTICATED", pw->pw_name, 1);  		}  	} @@ -6805,7 +6794,7 @@ int main(int argc, char **argv)  	if (!protocol || !*protocol)  		protocol="IMAP"; -	putenv("IMAP_STARTTLS=NO");	/* No longer grok STARTTLS */ +	setenv("IMAP_STARTTLS", "NO", 1);	/* No longer grok STARTTLS */  	/* We use select() with a timeout, so use non-blocking filedescs */ | 
