mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	fix fd leak on fork() failure (from HEAD)
This commit is contained in:
		| @@ -14,7 +14,7 @@ | |||||||
|  |  | ||||||
| #include "portab.h" | #include "portab.h" | ||||||
|  |  | ||||||
| static char UNUSED id[] = "$Id: resolve.c,v 1.12 2005/05/28 10:46:50 fw Exp $"; | static char UNUSED id[] = "$Id: resolve.c,v 1.12.2.1 2005/09/02 22:07:38 fw Exp $"; | ||||||
|  |  | ||||||
| #include "imp.h" | #include "imp.h" | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| @@ -108,6 +108,8 @@ Resolve_Addr( struct sockaddr_in *Addr ) | |||||||
| 	else | 	else | ||||||
| 	{ | 	{ | ||||||
| 		/* Error! */ | 		/* Error! */ | ||||||
|  | 		close(s->pipe[0]); | ||||||
|  | 		close(s->pipe[1]); | ||||||
| 		free( s ); | 		free( s ); | ||||||
| 		Log( LOG_CRIT, "Resolver: Can't fork: %s!", strerror( errno )); | 		Log( LOG_CRIT, "Resolver: Can't fork: %s!", strerror( errno )); | ||||||
| 		return NULL; | 		return NULL; | ||||||
| @@ -149,6 +151,8 @@ Resolve_Name( char *Host ) | |||||||
| 	else | 	else | ||||||
| 	{ | 	{ | ||||||
| 		/* Error! */ | 		/* Error! */ | ||||||
|  | 		close(s->pipe[0]); | ||||||
|  | 		close(s->pipe[1]); | ||||||
| 		free( s ); | 		free( s ); | ||||||
| 		Log( LOG_CRIT, "Resolver: Can't fork: %s!", strerror( errno )); | 		Log( LOG_CRIT, "Resolver: Can't fork: %s!", strerror( errno )); | ||||||
| 		return NULL; | 		return NULL; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Florian Westphal
					Florian Westphal