Re: PATCH: Fix poor pointer math in devinet_sysctl_register

From: Andrew Morton
Date: Thu Nov 17 2005 - 01:21:22 EST


"Jordan Crouse" <jordan.crouse@xxxxxxx> wrote:
>
> This patch fixes pointer math that under certain circumstances, results
> in really bad pointers. This was encountered on a system compiled for i486, so
> other compilers may differ, but I don't think it hurts anyone.
>
> Signed-off-by: Jordan Crouse <jordan.crouse@xxxxxxx>
> ---
>
> net/ipv4/devinet.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
> index 4ec4b2c..7585fce 100644
> --- a/net/ipv4/devinet.c
> +++ b/net/ipv4/devinet.c
> @@ -1454,7 +1454,7 @@ static void devinet_sysctl_register(stru
> return;
> memcpy(t, &devinet_sysctl, sizeof(*t));
> for (i = 0; i < ARRAY_SIZE(t->devinet_vars) - 1; i++) {
> - t->devinet_vars[i].data += (char *)p - (char *)&ipv4_devconf;
> + t->devinet_vars[i].data += (int)((char *)p - (char *)&ipv4_devconf);

Confused. These appear to be equivalent (on 32-bit CPUs, anyway).

-
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/