changeset 6315:5ebf96e37a39 HEAD

restrict_raise_fd_limit() fixes
author Timo Sirainen <tss@iki.fi>
date Fri, 24 Aug 2007 20:55:01 +0300
parents c6d6ce742a82
children fcd14b4cf941
files src/lib/restrict-process-size.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/restrict-process-size.c	Fri Aug 24 20:50:44 2007 +0300
+++ b/src/lib/restrict-process-size.c	Fri Aug 24 20:55:01 2007 +0300
@@ -61,16 +61,17 @@
 
 	if (getrlimit(RLIMIT_NOFILE, &rlim) < 0)
 		return FALSE;
+	if (rlim.rlim_cur >= count)
+		return TRUE;
 
-	if (rlim.rlim_cur < count)
-		new_rlim.rlim_cur = new_rlim.rlim_max = count;
+	new_rlim.rlim_cur = new_rlim.rlim_max = count;
 	if (setrlimit(RLIMIT_NOFILE, &new_rlim) == 0)
 		return TRUE;
 
 	/* raise as high as we can */
 	if (rlim.rlim_cur < rlim.rlim_max) {
 		rlim.rlim_cur = rlim.rlim_max;
-		(void)setrlimit(RLIMIT_NOFILE, &new_rlim);
+		(void)setrlimit(RLIMIT_NOFILE, &rlim);
 	}
 #endif
 	return FALSE;