Messages in this thread | | | Date | Wed, 11 Jul 2012 12:06:55 -0400 | From | Chris Metcalf <> | Subject | Re: [PATCH 3/3] ipc: compat: use signed size_t types for msgsnd and msgrcv |
| |
On 7/11/2012 11:32 AM, Will Deacon wrote: > The msgsnd and msgrcv system calls use size_t to represent the size of > the message being transferred. POSIX states that values of msgsz greater > than SSIZE_MAX cause the result to be implementation-defined. On Linux, > this equates to returning -EINVAL if (long) msgsz < 0. > > For compat tasks where !CONFIG_ARCH_WANT_OLD_COMPAT_IPC and > compat_size_t is smaller than size_t, negative size values passed from > userspace will be interpreted as positive values by do_msg{rcv,snd} and > will fail to exit early with -EINVAL. > > This patch changes the compat prototypes for msg{rcv,snd} so that the > message size is represented as a compat_ssize_t, which we cast to the > native ssize_t type for the core IPC code. > > Cc: Arnd Bergmann <arnd@arndb.de> > Acked-by: Catalin Marinas <catalin.marinas@arm.com> > Signed-off-by: Will Deacon <will.deacon@arm.com> > --- > include/linux/compat.h | 4 ++-- > ipc/compat.c | 8 ++++---- > 2 files changed, 6 insertions(+), 6 deletions(-)
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
-- Chris Metcalf, Tilera Corp. http://www.tilera.com
| |