Hello Cyril, On Mon, Nov 12, 2012 at 11:56 AM, <chrubis@xxxxxxx> wrote: > This patch adds EOVERFLOW and conditions needed to > trigger it into mmap.2 man page. Thanks. Applied. Cheers, Michael > -- > Cyril Hrubis > chrubis@xxxxxxx > > From e656978560e317b95a8315b9556690e8c03917f2 Mon Sep 17 00:00:00 2001 > From: Cyril Hrubis <chrubis@xxxxxxx> > Date: Wed, 7 Nov 2012 11:52:55 +0100 > Subject: [PATCH 1/2] mmap.2: Add EOVERFLOW to ERRORS. > > The overflow could be triggered on 32 bit arch > with large file extension (i.e. 64 bit off_t) > if number of pages used for len plus number of > pages used for offset would overflow 32 bit > unsigned long. > > In this case we would hit this line from do_mmap_pgoff: > > ... > /* offset overflow? */ > if ((pgoff + (len >> PAGE_SHIFT)) < pgoff) > return -EOVERFLOW; > ... > > Note that if the offset is too big (would overflow > unsigned long in number of pages itself) you would hit > EINVAL first. > > The code to trigger this condition could be > seen in LTP git repo in: > > open_posix_testsuite/conformance/interfaces/mmap/31-1.c > > Signed-off-by: Cyril Hrubis <chrubis@xxxxxxx> > --- > man2/mmap.2 | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/man2/mmap.2 b/man2/mmap.2 > index 042b833..29fcc3d 100644 > --- a/man2/mmap.2 > +++ b/man2/mmap.2 > @@ -470,6 +470,11 @@ was mounted no-exec. > was set but the object specified by > .I fd > is open for writing. > +.TP > +.B EOVERFLOW > +happens on 32 bit architecture together with large file extension (i.e. using > +64 bit off_t) when number of pages used for length plus number of pages used > +for offset would overflow unsigned long (32 bits) > .LP > Use of a mapped region can result in these signals: > .TP > -- > 1.7.8.6 > > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Author of "The Linux Programming Interface"; http://man7.org/tlpi/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html