diff options
author | dillon <dillon@FreeBSD.org> | 2002-08-30 18:09:46 +0000 |
---|---|---|
committer | dillon <dillon@FreeBSD.org> | 2002-08-30 18:09:46 +0000 |
commit | 85479bded200a1b62985abab079cf75a21e9da96 (patch) | |
tree | 56c20790c1678608fb11f1c12698ce4d4ad23672 /sys/compat/svr4/svr4_misc.c | |
parent | 52a0704905111dec0d39b6fc3ad76bf6791f1fe3 (diff) | |
download | FreeBSD-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.c | 5 |
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) { |