Commit 7da6117e authored by Kees Cook's avatar Kees Cook Committed by Paolo Abeni
Browse files

ieee802154: Use struct sockaddr_storage with dev_set_mac_address()



Switch to struct sockaddr_storage for calling dev_set_mac_address(). Add
a temporary cast to struct sockaddr, which will be removed in a
subsequent patch.

Acked-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: default avatarKees Cook <kees@kernel.org>
Link: https://patch.msgid.link/20250521204619.2301870-4-kees@kernel.org


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent db586cad
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -224,17 +224,17 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
	dev_hold(dev);

	if (info->attrs[IEEE802154_ATTR_HW_ADDR]) {
		struct sockaddr addr;
		struct sockaddr_storage addr;

		addr.sa_family = ARPHRD_IEEE802154;
		nla_memcpy(&addr.sa_data, info->attrs[IEEE802154_ATTR_HW_ADDR],
		addr.ss_family = ARPHRD_IEEE802154;
		nla_memcpy(&addr.__data, info->attrs[IEEE802154_ATTR_HW_ADDR],
			   IEEE802154_ADDR_LEN);

		/* strangely enough, some callbacks (inetdev_event) from
		 * dev_set_mac_address require RTNL_LOCK
		 */
		rtnl_lock();
		rc = dev_set_mac_address(dev, &addr, NULL);
		rc = dev_set_mac_address(dev, (struct sockaddr *)&addr, NULL);
		rtnl_unlock();
		if (rc)
			goto dev_unregister;