[patch] somebody please fix this outstanding mmap(2) bug

John Baldwin jhb at freebsd.org
Mon Mar 22 21:08:05 UTC 2010


On Monday 22 March 2010 3:46:53 pm Alexander Best wrote:
> John Baldwin schrieb am 2010-03-22:
> > On Monday 22 March 2010 11:07:43 am Alexander Best wrote:
> > > could somebody please commit this patch? it's been around forever
> > > (2003 or
> > > 2004) and fixes mmap so the offset argument is being ignored when
> > > MAP_ANON
> > is
> > > defined (just like the mmap(2) manual says). right now the offset
> > > argument
> > is
> > > being taken into account although MAP_ANON is set!!!
> 
> > > the pr is kern/71258 (including a little c app to demonstrate the
> > > bug)
> 
> > > i've also sent a followup patch to the pr which returns EINVAL if
> > > the offset
> > > is non zero and MAP_ANON is set, but i guess that might break some
> > > code.
> 
> > I think we should go the EINVAL route, and I will commit the patch
> > you did to
> > add that.
> 
> thanks. :) i've checked what posix sais about this and since it doesn't know
> MAP_ANON there's no real rule for this case. the only thing that comes close
> is:
> 
> "The mmap() function may fail if:
> 
> [EINVAL]
> The addr argument (if MAP_FIXED was specified) or off is not a multiple of the
> page size as returned by sysconf(), or is considered invalid by the
> implementation."

Yes, the 'considered invalid by the implementation' is the bit I'm claiming.

-- 
John Baldwin


More information about the freebsd-hackers mailing list