Re: [PATCH 4.9 01/12] p54: memset(0) whole array

From: Joe Perches
Date: Thu Aug 31 2017 - 12:41:00 EST


On Thu, 2017-08-31 at 17:44 +0200, Greg Kroah-Hartman wrote:
> 4.9-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Jiri Slaby <jslaby@xxxxxxx>
>
> commit 6f17581788206444cbbcdbc107498f85e9765e3d upstream.
>
> gcc 7 complains:
> drivers/net/wireless/intersil/p54/fwio.c: In function 'p54_scan':
> drivers/net/wireless/intersil/p54/fwio.c:491:4: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
>
> Fix that by passing the correct size to memset.
>
> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> Cc: Christian Lamparter <chunkeey@xxxxxxxxxxxxxx>
> Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
> Acked-by: Christian Lamparter <chunkeey@xxxxxxxxxxxxxx>
> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>
> ---
> drivers/net/wireless/intersil/p54/fwio.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/drivers/net/wireless/intersil/p54/fwio.c
> +++ b/drivers/net/wireless/intersil/p54/fwio.c
> @@ -488,7 +488,7 @@ int p54_scan(struct p54_common *priv, u1
>
> entry += sizeof(__le16);
> chan->pa_points_per_curve = 8;
> - memset(chan->curve_data, 0, sizeof(*chan->curve_data));
> + memset(chan->curve_data, 0, sizeof(chan->curve_data));
> memcpy(chan->curve_data, entry,
> sizeof(struct p54_pa_curve_data_sample) *
> min((u8)8, curve_data->points_per_channel));
>

Why is this change correct?

curve_data is a pointer.

This now clears the sizeof a pointer and not
the sizeof struct p54_cal_database