|
From: Tom H. <th...@cy...> - 2004-09-11 14:19:33
|
CVS commit by thughes:
Make the virtualise setrlimit(RLIMIT_DATA) return EPERM when an attempt
is made to raise either the soft or hard limit above the current hard
limit rather than just allowing it.
M +8 -2 vg_syscalls.c 1.137
--- valgrind/coregrind/vg_syscalls.c #1.136:1.137
@@ -4694,7 +4694,13 @@ PRE(setrlimit)
}
else if (arg1 == VKI_RLIMIT_DATA) {
+ if (((vki_rlimit *)arg2)->rlim_cur > ((vki_rlimit *)arg2)->rlim_max ||
+ ((vki_rlimit *)arg2)->rlim_max > ((vki_rlimit *)arg2)->rlim_max) {
+ res = -VKI_EPERM;
+ }
+ else {
VG_(client_rlimit_data) = *(vki_rlimit *)arg2;
res = 0;
}
+ }
else if (arg1 == VKI_RLIMIT_STACK && tid == 1) {
if (((vki_rlimit *)arg2)->rlim_cur > ((vki_rlimit *)arg2)->rlim_max ||
|