Re: [ 083/143] net: clamp ->msg_namelen instead of returning an error

Dan Carpenter
2014-05-14T10:02:53Z

On Mon, May 12, 2014 at 02:33:23AM +0200, Willy Tarreau wrote:
> 2.6.32-longterm review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Dan Carpenter <dan.carpenter@oracle.com>
>
> [ Upstream commit db31c55a6fb245fdbb752a2ca4aefec89afabb06 ]
>
> If kmsg->msg_namelen > sizeof(struct sockaddr_storage) then in the
> original code that would lead to memory corruption in the kernel if you
> had audit configured. If you didn't have audit configured it was
> harmless.
>
> There are some programs such as beta versions of Ruby which use too
> large of a buffer and returning an error code breaks them. We should
> clamp the ->msg_namelen value instead.
>
> Fixes: 1661bf364ae9 ("net: heap overflow in __audit_sockaddr()")

You should probably take dbb490b96584 ('net: socket: error on a negative
msg_namelen') as well. LTP has a test that passes negative values to
this code and expects an error return so my clamp patch breaks LTP.

regards,
dan carpenter