summaryrefslogtreecommitdiffstats
path: root/sys/compat/svr4/imgact_svr4.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/svr4/imgact_svr4.c')
-rw-r--r--sys/compat/svr4/imgact_svr4.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/compat/svr4/imgact_svr4.c b/sys/compat/svr4/imgact_svr4.c
index 5d8d550..4dc5b8f 100644
--- a/sys/compat/svr4/imgact_svr4.c
+++ b/sys/compat/svr4/imgact_svr4.c
@@ -104,14 +104,16 @@ exec_svr4_imgact(imgp)
/* text + data can't exceed file size */
if (a_out->a_data + a_out->a_text > imgp->attr->va_size)
return (EFAULT);
- /* For p_rlimit below. */
- mtx_assert(&Giant, MA_OWNED);
/*
* text/data/bss must not exceed limits
*/
+ PROC_LOCK(imgp->proc);
if (a_out->a_text > maxtsiz ||
- a_out->a_data + bss_size > imgp->proc->p_rlimit[RLIMIT_DATA].rlim_cur)
+ a_out->a_data + bss_size > lim_cur(imgp->proc, RLIMIT_DATA)) {
+ PROC_UNLOCK(imgp->proc);
return (ENOMEM);
+ }
+ PROC_UNLOCK(imgp->proc);
VOP_UNLOCK(imgp->vp, 0, td);
OpenPOWER on IntegriCloud