mmap/munmap with zero length

Tijl Coosemans tijl at ulyssis.org
Mon Jul 13 20:05:47 UTC 2009


On Monday 13 July 2009 20:28:08 John Baldwin wrote:
> On Sunday 05 July 2009 3:32:25 am Alexander Best wrote:
>> so mmap differs from the POSIX recommendation right. the malloc.conf
>> option seems more like a workaround/hack. imo it's confusing to have
>> mmap und munmap deal differently with len=0. being able to
>> succesfully alocate memory which cannot be removed doesn't seem
>> logical to me.
> 
> This should fix it:
> 
> --- //depot/user/jhb/acpipci/vm/vm_mmap.c
> +++ /home/jhb/work/p4/acpipci/vm/vm_mmap.c
> @@ -229,7 +229,7 @@
> 
>         fp = NULL;
>         /* make sure mapping fits into numeric range etc */
> -       if ((ssize_t) uap->len < 0 ||
> +       if ((ssize_t) uap->len <= 0 ||
>             ((flags & MAP_ANON) && uap->fd != -1))
>                 return (EINVAL);

Why not "uap->len == 0"? Sizes of 2GiB and more (32bit) shouldn't cause
an error.


More information about the freebsd-hackers mailing list