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 <jesus.manzano@galgus.net>
This commit is contained in:
Jesus Fernandez Manzano 2019-10-09 09:59:33 +02:00 committed by Jouni Malinen
parent 00ddc1cc21
commit 305369038b

View file

@ -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);
}