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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <ebiederm@xxxxxxxxxxxx>

Looks good to me.

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

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
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux