Commit e408f065 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] ppc64: shmget() translation bugfix

From: David Gibson <david@gibson.dropbear.id.au>

The 32->64 bit syscall translation layer on ppc64 incorrectly sign-
extends rather than zero-extending the second parameter to shmget(),
which should be a size_t.  This means that it is impossible to shmget()
more 2GB or more from a 32-bit process.
parent 7ead32b4
...@@ -1666,7 +1666,7 @@ asmlinkage long sys32_ipc(u32 call, u32 first_parm, u32 second_parm, u32 third_p ...@@ -1666,7 +1666,7 @@ asmlinkage long sys32_ipc(u32 call, u32 first_parm, u32 second_parm, u32 third_p
err = sys_shmdt((char *)AA(ptr)); err = sys_shmdt((char *)AA(ptr));
break; break;
case SHMGET: case SHMGET:
err = sys_shmget(first, second, third); err = sys_shmget(first, second_parm, third);
break; break;
case SHMCTL: case SHMCTL:
err = do_sys32_shmctl(first, second, (void *)AA(ptr)); err = do_sys32_shmctl(first, second, (void *)AA(ptr));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment