kernel - mmap offset is invalid for MAP_ANON
authorSamuel J. Greear <sjg@thesjg.com>
Fri, 30 Apr 2010 04:30:05 +0000 (22:30 -0600)
committerSamuel J. Greear <sjg@thesjg.com>
Fri, 30 Apr 2010 04:30:05 +0000 (22:30 -0600)
Submitted-by: Venkatesh Srinivas
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1723>

sys/vm/vm_mmap.c

index 9285be9..db08e22 100644 (file)
@@ -180,7 +180,7 @@ kern_mmap(struct vmspace *vms, caddr_t uaddr, size_t ulen,
         *
         * NOTE: We support the full unsigned range for size now.
         */
-       if (((flags & MAP_ANON) && fd != -1))
+       if (((flags & MAP_ANON) && (fd != -1 || pos != 0)))
                return (EINVAL);
 
        if (flags & MAP_STACK) {
@@ -263,7 +263,6 @@ kern_mmap(struct vmspace *vms, caddr_t uaddr, size_t ulen,
                 */
                handle = NULL;
                maxprot = VM_PROT_ALL;
-               pos = 0;
        } else {
                /*
                 * Mapping file, get fp for validation. Obtain vnode and make