Re: [PATCH] ipvs: Add boundary check on ioctl arguments

To: Simon Horman <horms@xxxxxxxxxxxx>
Subject: Re: [PATCH] ipvs: Add boundary check on ioctl arguments
Cc: netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>, Wensong Zhang <wensong@xxxxxxxxxxxx>, Julian Anastasov <ja@xxxxxx>, David Miller <davem@xxxxxxxxxxxxx>
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Mon, 04 Jan 2010 14:59:47 +0100
Simon Horman wrote:
> From: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
> ipvs: Add boundary check on ioctl arguments
> The ipvs code has a nifty system for doing the size of ioctl command
> copies; it defines an array with values into which it indexes the cmd
> to find the right length.
> Unfortunately, the ipvs code forgot to check if the cmd was in the
> range that the array provides, allowing for an index outside of the
> array, which then gives a "garbage" result into the length, which
> then gets used for copying into a stack buffer.
> Fix this by adding sanity checks on these as well as the copy size.
> [ horms@xxxxxxxxxxxx: adjusted limit to IP_VS_SO_GET_MAX ]
> Signed-off-by: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
> Acked-by: Julian Anastasov <ja@xxxxxx>
> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
> ---
>  net/netfilter/ipvs/ip_vs_ctl.c |   14 +++++++++++++-
>  1 files changed, 13 insertions(+), 1 deletions(-)
> Hi Arjen,
> this is the 4th response to your patch. I am guessing the previous
> ones didn't reach you for some reason. And I guess this one wont
> for the same reason.
> I agree with Julian's assessment that your patch shouldn't be
> necessary, but on the other hand I think that the checks are
> reasonable. Your original patch made checks of the form of
> "cmd > IP_VS_SO_GET_MAX + 1". I have updated this to
> "cmd > IP_VS_SO_GET_MAX", as suggested by Julian, as the optmax
> elements of struct nf_sockopt_ops set a non-inclusive range.
> Index: net-next-2.6/net/netfilter/ipvs/ip_vs_ctl.c

As a bugfix, this seems more appropriate for net-2.6.git. Please let
me know which tree you want me to apply this to.
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

<Prev in Thread] Current Thread [Next in Thread>