All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Bug#604928: stat.2: EOVERFLOW not only for st_size; bit/byte confusion
       [not found] ` <20101125140830.GA14353-rNNsFfiJtZ89bTkMJW/ABGJiwOkYxero@public.gmane.org>
@ 2012-10-22 23:55   ` Simon Paillard
       [not found]     ` <20121022235500.GA16004-8MNqHwMchPhGJ/Ie3qa20WD2FQJk+8+b@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Simon Paillard @ 2012-10-22 23:55 UTC (permalink / raw)
  To: Lionel Elie Mamane, 604928-61a8vm9lEZVf4u+23C9RwQ
  Cc: linux-man-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1671 bytes --]

Control: -1 found 3.42-1

On Thu, Nov 25, 2010 at 03:08:30PM +0100, Lionel Elie Mamane wrote:
> stat(2) says:
> 
> ERRORS
>  (...)
>    EOVERFLOW
>      (stat())  path  refers to a file whose size cannot be represented in the
>      type off_t.  This can occur when an application compiled on a 32-bit
>      platform without -D_FILE_OFFSET_BITS=64 calls stat() on a file whose
>      size exceeds (2<<31)-1 bits.
> 
> 1) It would seem to me that the condition for this to occur would be a
>    file whose size exceeds (2<<31)-1 *bytes*, not "bits".

Still applicable to manpages 3.43.
 
> 2) I got this for an overflow on st_ino (64 bit kernel, 32 bit
>    userland, CIFS mount of a Windows-served share).

Confirmed with
OpenGroup:  http://pubs.opengroup.org/onlinepubs/009695399/functions/stat.html
   [EOVERFLOW]
      The file size in bytes or the number of blocks allocated to the file or
      the file serial number cannot be represented correctly in the structure
      pointed to by buf.

egblic: sysdeps/unix/sysv/linux/xstatconv.c it can be st_ino, st_size or st_blocks
 
> So I'd suggest this text become something along the lines of:
> 
>    path or fd refers to a file for which the value of a field of the
>    stat structure cannot be represented in its type. This usually
>    occurs with applications compiled on a 32-bit platform without
>    -D_FILE_OFFSET_BITS=64. The most common occurrence is when such an
>    application calls stat() on a file whose size exceeds
>    (2<<31)-1 bytes; but it can also occur e.g. for the st_ino field,
>    e.g. when such an application is run on a 64 bit kernel.

An other proposal attached.

-- 
Simon Paillard

[-- Attachment #2: 604928.EOVERFLOW.diff --]
[-- Type: text/x-diff, Size: 789 bytes --]

diff --git a/man2/stat.2 b/man2/stat.2
index 0b82e1d..fb2f9dd 100644
--- a/man2/stat.2
+++ b/man2/stat.2
@@ -343,15 +343,18 @@ is not a directory.
 .B EOVERFLOW
 .RB ( stat ())
 .I path
-refers to a file whose size cannot be represented in the type
-.IR off_t .
-This can occur when an application compiled on a 32-bit platform without
+refers to a file whose size, inode number, or number of blocks cannot be represented in their respective type
+.IR off_t ,
+.IR ino_t ,
+or
+.IR blkcnt_t .
+This usually occurs when an application compiled on a 32-bit platform without
 .I -D_FILE_OFFSET_BITS=64
 calls
 .BR stat ()
 on a file whose size exceeds
 .I (1<<31)-1
-bits.
+bytes.
 .SH "CONFORMING TO"
 These system calls conform to SVr4, 4.3BSD, POSIX.1-2001.
 .\" SVr4 documents additional

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] stat.2: EOVERFLOW not only for st_size, not in bits
       [not found]     ` <20121022235500.GA16004-8MNqHwMchPhGJ/Ie3qa20WD2FQJk+8+b@public.gmane.org>
@ 2012-11-07 19:13       ` Simon Paillard
  2012-11-11 10:41       ` Bug#604928: stat.2: EOVERFLOW not only for st_size; bit/byte confusion Michael Kerrisk (man-pages)
  1 sibling, 0 replies; 3+ messages in thread
From: Simon Paillard @ 2012-11-07 19:13 UTC (permalink / raw)
  To: linux-man-u79uwXL29TY76Z2rM5mHXA; +Cc: Simon Paillard

egblic: sysdeps/unix/sysv/linux/xstatconv.c it can be st_ino, st_size or
st_blocks

See http://bugs.debian.org/604928

Reported-by: Lionel Elie Mamane <lionel-vlyxx04YXHqHXe+LvDLADg@public.gmane.org>
---
 man2/stat.2 |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/man2/stat.2 b/man2/stat.2
index d4838a2..c7886b0 100644
--- a/man2/stat.2
+++ b/man2/stat.2
@@ -343,15 +343,18 @@ is not a directory.
 .B EOVERFLOW
 .RB ( stat ())
 .I path
-refers to a file whose size cannot be represented in the type
-.IR off_t .
-This can occur when an application compiled on a 32-bit platform without
+refers to a file whose size, inode number, or number of blocks cannot be represented in their respective type
+.IR off_t ,
+.IR ino_t ,
+or
+.IR blkcnt_t .
+This usually occurs when an application compiled on a 32-bit platform without
 .I -D_FILE_OFFSET_BITS=64
 calls
 .BR stat ()
 on a file whose size exceeds
 .I (1<<31)-1
-bits.
+bytes.
 .SH "CONFORMING TO"
 These system calls conform to SVr4, 4.3BSD, POSIX.1-2001.
 .\" SVr4 documents additional
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: Bug#604928: stat.2: EOVERFLOW not only for st_size; bit/byte confusion
       [not found]     ` <20121022235500.GA16004-8MNqHwMchPhGJ/Ie3qa20WD2FQJk+8+b@public.gmane.org>
  2012-11-07 19:13       ` [PATCH] stat.2: EOVERFLOW not only for st_size, not in bits Simon Paillard
@ 2012-11-11 10:41       ` Michael Kerrisk (man-pages)
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Kerrisk (man-pages) @ 2012-11-11 10:41 UTC (permalink / raw)
  To: Simon Paillard
  Cc: Lionel Elie Mamane, 604928-61a8vm9lEZVf4u+23C9RwQ,
	linux-man-u79uwXL29TY76Z2rM5mHXA, control-61a8vm9lEZVf4u+23C9RwQ

tags 604928 fixed-upstream
thanks

On Tue, Oct 23, 2012 at 1:55 AM, Simon Paillard <spaillard-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org> wrote:
> Control: -1 found 3.42-1
>
> On Thu, Nov 25, 2010 at 03:08:30PM +0100, Lionel Elie Mamane wrote:
>> stat(2) says:
>>
>> ERRORS
>>  (...)
>>    EOVERFLOW
>>      (stat())  path  refers to a file whose size cannot be represented in the
>>      type off_t.  This can occur when an application compiled on a 32-bit
>>      platform without -D_FILE_OFFSET_BITS=64 calls stat() on a file whose
>>      size exceeds (2<<31)-1 bits.
>>
>> 1) It would seem to me that the condition for this to occur would be a
>>    file whose size exceeds (2<<31)-1 *bytes*, not "bits".
>
> Still applicable to manpages 3.43.
>
>> 2) I got this for an overflow on st_ino (64 bit kernel, 32 bit
>>    userland, CIFS mount of a Windows-served share).
>
> Confirmed with
> OpenGroup:  http://pubs.opengroup.org/onlinepubs/009695399/functions/stat.html
>    [EOVERFLOW]
>       The file size in bytes or the number of blocks allocated to the file or
>       the file serial number cannot be represented correctly in the structure
>       pointed to by buf.
>
> egblic: sysdeps/unix/sysv/linux/xstatconv.c it can be st_ino, st_size or st_blocks
>
>> So I'd suggest this text become something along the lines of:
>>
>>    path or fd refers to a file for which the value of a field of the
>>    stat structure cannot be represented in its type. This usually
>>    occurs with applications compiled on a 32-bit platform without
>>    -D_FILE_OFFSET_BITS=64. The most common occurrence is when such an
>>    application calls stat() on a file whose size exceeds
>>    (2<<31)-1 bytes; but it can also occur e.g. for the st_ino field,
>>    e.g. when such an application is run on a 64 bit kernel.
>
> An other proposal attached.

Thanks Simon. I applied a modified version of your patch, as below.

Cheers,

Michael

--- a/man2/stat.2
+++ b/man2/stat.2
@@ -341,17 +341,23 @@ A component of the path prefix of
 is not a directory.
 .TP
 .B EOVERFLOW
-.RB ( stat ())
 .I path
-refers to a file whose size cannot be represented in the type
-.IR off_t .
-This can occur when an application compiled on a 32-bit platform without
+or
+.I fd
+refers to a file whose size, inode number,
+or number of blocks cannot be represented in, respectively, the types
+.IR off_t ,
+.IR ino_t ,
+or
+.IR blkcnt_t .
+This error can occur when, for example,
+an application compiled on a 32-bit platform without
 .I -D_FILE_OFFSET_BITS=64
 calls
 .BR stat ()
 on a file whose size exceeds
 .I (1<<31)-1
-bits.
+bytes.
 .SH "CONFORMING TO"
 These system calls conform to SVr4, 4.3BSD, POSIX.1-2001.
 .\" SVr4 documents additional


-- 
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-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-11-11 10:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20101125140830.GA14353@capsaicin.mamane.lu>
     [not found] ` <20101125140830.GA14353-rNNsFfiJtZ89bTkMJW/ABGJiwOkYxero@public.gmane.org>
2012-10-22 23:55   ` Bug#604928: stat.2: EOVERFLOW not only for st_size; bit/byte confusion Simon Paillard
     [not found]     ` <20121022235500.GA16004-8MNqHwMchPhGJ/Ie3qa20WD2FQJk+8+b@public.gmane.org>
2012-11-07 19:13       ` [PATCH] stat.2: EOVERFLOW not only for st_size, not in bits Simon Paillard
2012-11-11 10:41       ` Bug#604928: stat.2: EOVERFLOW not only for st_size; bit/byte confusion Michael Kerrisk (man-pages)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.