Thread (2 messages) 2 messages, 2 authors, 2011-10-19

Re: [PATCH] compat: sync compat_stats with statfs.

From: Arnd Bergmann <arnd@arndb.de>
Date: 2011-10-19 22:28:42
Also in: linux-fsdevel

On Monday 17 October 2011 13:40:02 Eric W. Biederman wrote:
This was found by inspection while tracking a similar
bug in compat_statfs64, that has been fixed in mainline
since decemeber.

- This fixes a bug where not all of the f_spare fields
  were cleared on mips and s390.
- Add the f_flags field to struct compat_statfs
- Copy f_flags to userspace in case someone cares.
- Use __clear_user to copy the f_spare field to userspace
  to ensure that all of the elements of f_spare are cleared.
  On some architectures f_spare is has 5 ints and on some
  architectures f_spare only has 4 ints.  Which makes
  the previous technique of clearing each int individually
  broken.

I don't expect anyone actually uses the old statfs system
call anymore but if they do let them benefit from having
the compat and the native version working the same.

Signed-off-by: Eric W. Biederman <redacted>
Looks good to me.

Acked-by: Arnd Bergmann <arnd@arndb.de>

Apparently, this could have been worse on tile, which has
#define compat_statfs statfs, so that the old
"__put_user(0, &ubuf->f_spare[4]))" was writing beyond the
end of struct statfs. Fortunately, this never gets called
on tile, which only provides compat_sys_statfs64 to user space,
not compat_sys_statfs.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help