DragonFly commits List (threaded) for 2009-04
DragonFly BSD
DragonFly commits List (threaded) for 2009-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

DragonFly-2.3.0.789.gc80994 master lib/libc/sys mmap.2 lib/libthread_xu/thread thr_stack.c sys/kern kern_exec.c kern_slaballoc.c vfs_bio.c sys/vm vm_contig.c vm_kern.c vm_map.c vm_map.h vm_mmap.c


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 23 Apr 2009 14:46:23 -0700 (PDT)

commit c809941bd5d72ef4ef4ef648c0fba8946b9e61e3
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Apr 23 14:41:28 2009 -0700

    Make adjustments to how MAP_STACK works to prevent improper mmap()s.
    
    Record that a vm_map_entry is a stack mapping.  When locating free space
    do not allow non-MAP_STACK mappings to use space reserved by MAP_STACK
    mappings, unless MAP_FIXED is used of course.
    
    Previously MAP_STACK mappings implied MAP_FIXED, which is not how they are
    supposed to work.  Implement proper hinting without MAP_FIXED.
    
    Do not allow a normal mmap() call to use space reserved by a MAP_STACK
    mapping (unless MAP_FIXED is used of course).
    
    The proper method of making a MAP_STACK mapping inside another MAP_STACK
    mapping is to use MAP_STACK | MAP_TRYFIXED.  For now, though, we silently
    imply MAP_TRYFIXED when MAP_STACK is specified and it will work without it.
    
    Document MAP_TRYFIXED and make it also relax additional requirements imposed
    by MAP_STACK mappings inside of MAP_STACK mappings.
    
    Adjust libthread_xu to use MAP_STACK | MAP_TRYFIXED.

Summary of changes:
 lib/libc/sys/mmap.2                 |   62 ++++++++++++++++++++++-------------
 lib/libthread_xu/thread/thr_stack.c |    3 +-
 sys/kern/kern_exec.c                |    2 +-
 sys/kern/kern_slaballoc.c           |    2 +-
 sys/kern/vfs_bio.c                  |    2 +-
 sys/vm/vm_contig.c                  |    2 +-
 sys/vm/vm_kern.c                    |    6 ++-
 sys/vm/vm_map.c                     |   62 ++++++++++++++++++++++-------------
 sys/vm/vm_map.h                     |    8 +++--
 sys/vm/vm_mmap.c                    |   34 ++++++++++---------
 10 files changed, 111 insertions(+), 72 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c809941bd5d72ef4ef4ef648c0fba8946b9e61e3


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]