Re: + fix-compat-space-msg-size-limit-for-msgsnd-msgrcv.patch added to -mm tree

From: Arnd Bergmann
Date: Mon Nov 13 2006 - 19:40:59 EST


On Tuesday 14 November 2006 00:58, akpm@xxxxxxxx wrote:

> Subject: Fix compat space msg size limit for msgsnd/msgrcv
> From: suzuki <suzuki@xxxxxxxxxxxxxxxxxx>
>
> Currently we allocate 64k space on the user stack and use it the msgbuf for
> sys_{msgrcv,msgsnd} for compat and the results are later copied in user [by
> copy_in_user].
>
> This patch introduces helper routines for sys_{msgrcv,msgsnd} which would
> accept the pointer to msgbuf along with the msgp->mtext. This avoids the
> need to allocate the msgsize on the userspace (thus removing the size
> limit) and the overhead of an extra copy_in_user().
>
> Signed-off-by: Suzuki K P <suzuki@xxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxx>

This patch is definitely a big step in the right direction here, but why
not go all the way and pass msgp->mtype to do_msgsnd/do_msgrcv as kernel
data instead of a user space pointer? This way you can get rid of the
compat_alloc_userspace entirely and save avoid doing an extra
put_user/get_user pair in the compat_ function.

Arnd <><
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/