From 305369038bf554f6d76c41455a5bce9fdebba06b Mon Sep 17 00:00:00 2001 From: Jesus Fernandez Manzano Date: Wed, 9 Oct 2019 09:59:33 +0200 Subject: [PATCH] wpa_supplicant: Fix arithmetic on void pointer When using void pointers in calculations, the behavior is undefined. Arithmetic operations on 'void *' is a GNU C extension, which defines the 'sizeof(void)' to be 1. This change improves portability of the code. Signed-off-by: Jesus Fernandez Manzano --- wpa_supplicant/wpa_priv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/wpa_priv.c b/wpa_supplicant/wpa_priv.c index b3ad45eca..f19735277 100644 --- a/wpa_supplicant/wpa_priv.c +++ b/wpa_supplicant/wpa_priv.c @@ -598,7 +598,7 @@ static void wpa_priv_cmd_l2_send(struct wpa_priv_interface *iface, } dst_addr = buf; - os_memcpy(&proto, buf + ETH_ALEN, 2); + os_memcpy(&proto, (char *) buf + ETH_ALEN, 2); if (!wpa_priv_allowed_l2_proto(proto)) { wpa_printf(MSG_DEBUG, "Refused l2_packet send for ethertype " @@ -607,7 +607,8 @@ static void wpa_priv_cmd_l2_send(struct wpa_priv_interface *iface, } res = l2_packet_send(iface->l2[idx], dst_addr, proto, - buf + ETH_ALEN + 2, len - ETH_ALEN - 2); + (unsigned char *) buf + ETH_ALEN + 2, + len - ETH_ALEN - 2); wpa_printf(MSG_DEBUG, "L2 send[idx=%d]: res=%d", idx, res); }