| Date | Thu, 23 Apr 2009 00:20:26 -0700 | From | Chris Wright <> | Subject | [patch 006/100] MIPS: Compat: Zero upper 32-bit of offset_high and offset_low. |
| |
-stable review patch. If anyone has any objections, please let us know. ---------------------
From: Ralf Baechle <ralf@linux-mips.org>
upstream commit: d6c178e9694e7e0c7ffe0289cf4389a498cac735
Through sys_llseek() arguably should do exactly that it doesn't which means llseek(2) will fail for o32 processes if offset_low has bit 31 set.
As suggested by Heiko Carstens.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Chris Wright <chrisw@sous-sol.org> --- --- arch/mips/kernel/linux32.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
--- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c @@ -134,9 +134,9 @@ SYSCALL_DEFINE4(32_ftruncate64, unsigned return sys_ftruncate(fd, merge_64(a2, a3)); } -SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high, - unsigned long, offset_low, loff_t __user *, result, - unsigned long, origin) +SYSCALL_DEFINE5(32_llseek, unsigned int, fd, unsigned int, offset_high, + unsigned int, offset_low, loff_t __user *, result, + unsigned int, origin) { return sys_llseek(fd, offset_high, offset_low, result, origin); }
|