summaryrefslogtreecommitdiff
path: root/debian/patches-applied/032_pam_limits_EPERM_NOT_FATAL
blob: 9baac8cf1384449377613820121945d693154a94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
setrlimit will sometimes return EPERM for example if youp try to
increase the number  of open files too much.  This is not something we
want to consider fatal.     This also happens if you use non-root and
try to decrease a limit.  Running PAM as non-root is not so great.

Authors: ?

Upstream status: submitted in <20070830171918.GB30563@dario.dodds.net>

Index: Linux-PAM/modules/pam_limits/pam_limits.c
===================================================================
--- Linux-PAM/modules/pam_limits/pam_limits.c.orig
+++ Linux-PAM/modules/pam_limits/pam_limits.c
@@ -609,6 +609,7 @@
     }
 
     for (i=0, status=LIMITED_OK; i<RLIM_NLIMITS; i++) {
+	int retval;
 	if (!pl->limits[i].supported) {
 	    /* skip it if its not known to the system */
 	    continue;
@@ -620,7 +621,10 @@
 	}
         if (pl->limits[i].limit.rlim_cur > pl->limits[i].limit.rlim_max)
             pl->limits[i].limit.rlim_cur = pl->limits[i].limit.rlim_max;
-	status |= setrlimit(i, &pl->limits[i].limit);
+	retval = setrlimit(i, &pl->limits[i].limit);
+        if (retval == -1 && errno==EPERM)
+	    continue;
+	status |= retval;
     }
 
     if (status) {