summaryrefslogtreecommitdiffstats
path: root/sys/compat/svr4/svr4_misc.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2002-08-30 18:09:46 +0000
committerdillon <dillon@FreeBSD.org>2002-08-30 18:09:46 +0000
commit85479bded200a1b62985abab079cf75a21e9da96 (patch)
tree56c20790c1678608fb11f1c12698ce4d4ad23672 /sys/compat/svr4/svr4_misc.c
parent52a0704905111dec0d39b6fc3ad76bf6791f1fe3 (diff)
downloadFreeBSD-src-85479bded200a1b62985abab079cf75a21e9da96.zip
FreeBSD-src-85479bded200a1b62985abab079cf75a21e9da96.tar.gz
Implement data, text, and vmem limit checking in the elf loader and svr4
compat code. Clean up accounting for multiple segments. Part 1/2. Submitted by: Andrey Alekseyev <uitm@zenon.net> (with some modifications) MFC after: 3 days
Diffstat (limited to 'sys/compat/svr4/svr4_misc.c')
-rw-r--r--sys/compat/svr4/svr4_misc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/compat/svr4/svr4_misc.c b/sys/compat/svr4/svr4_misc.c
index f081598..52b590d 100644
--- a/sys/compat/svr4/svr4_misc.c
+++ b/sys/compat/svr4/svr4_misc.c
@@ -846,10 +846,9 @@ svr4_sys_break(td, uap)
if (new > old) {
vm_size_t diff;
- if (swap_pager_full) {
- return (ENOMEM);
- }
diff = new - old;
+ if (vm->vm_map.size + diff > p->p_rlimit[RLIMIT_VMEM].rlim_cur)
+ return(ENOMEM);
rv = vm_map_find(&vm->vm_map, NULL, 0, &old, diff, FALSE,
VM_PROT_ALL, VM_PROT_ALL, 0);
if (rv != KERN_SUCCESS) {
OpenPOWER on IntegriCloud