Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2021-11-30 14:48:34 +0300
committerCorinna Vinschen <corinna@vinschen.de>2021-11-30 14:55:14 +0300
commit670beaed0216aa59603501e8f14e1f04b138bc47 (patch)
tree7547471b5652c44525328d4a6f969cad08b0b0d4
parentd64cd470ae9b089d5e334efe7ed5ec4be68577d5 (diff)
Cygwin: setrlimit: Add a permission check
If the incoming soft limit is less restrictive than the current hard limit, bail out with EPERM. Given the previous sanity check, this implies trying to raise the hard limit. While, theoretically, this should be allowed for privileged processes, Windows has no matching concept in terms of job limits Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/resource.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/resource.cc b/winsup/cygwin/resource.cc
index 46d74b984..c4c79ca6f 100644
--- a/winsup/cygwin/resource.cc
+++ b/winsup/cygwin/resource.cc
@@ -261,6 +261,12 @@ setrlimit (int resource, const struct rlimit *rlp)
__leave;
}
+ if (rlp->rlim_cur > oldlimits.rlim_max)
+ {
+ set_errno (EPERM);
+ __leave;
+ }
+
switch (resource)
{
case RLIMIT_AS: