From: Tom Hughes Date: Mon, 20 Mar 2006 15:36:28 +0000 (+0000) Subject: Make hard limit enforcement work for RLIMIT_DATA and RLIMIT_STACK in X-Git-Tag: svn/VALGRIND_3_2_0~177 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6331c1b82d355ac017b7fc6ea7eaaee35ccfb5af;p=thirdparty%2Fvalgrind.git Make hard limit enforcement work for RLIMIT_DATA and RLIMIT_STACK in the setrlimit system call wrapper. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5782 --- diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index 5fffa03454..1338e3ff6e 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -5070,8 +5070,8 @@ PRE(sys_setrlimit) } } else if (ARG1 == VKI_RLIMIT_DATA) { - if (((struct vki_rlimit *)ARG2)->rlim_cur > ((struct vki_rlimit *)ARG2)->rlim_max || - ((struct vki_rlimit *)ARG2)->rlim_max > ((struct vki_rlimit *)ARG2)->rlim_max) { + if (((struct vki_rlimit *)ARG2)->rlim_cur > VG_(client_rlimit_data).rlim_max || + ((struct vki_rlimit *)ARG2)->rlim_max > VG_(client_rlimit_data).rlim_max) { SET_STATUS_Failure( VKI_EPERM ); } else { @@ -5080,8 +5080,8 @@ PRE(sys_setrlimit) } } else if (ARG1 == VKI_RLIMIT_STACK && tid == 1) { - if (((struct vki_rlimit *)ARG2)->rlim_cur > ((struct vki_rlimit *)ARG2)->rlim_max || - ((struct vki_rlimit *)ARG2)->rlim_max > ((struct vki_rlimit *)ARG2)->rlim_max) { + if (((struct vki_rlimit *)ARG2)->rlim_cur > VG_(client_rlimit_stack).rlim_max || + ((struct vki_rlimit *)ARG2)->rlim_max > VG_(client_rlimit_stack).rlim_max) { SET_STATUS_Failure( VKI_EPERM ); } else {