As part of trying to clean up struct sock_addr, add comments about the sockaddr arguments of dev_[gs]et_mac_address() being actual classic "max 14 bytes in sa_data" sockaddr instances and not struct sockaddr_storage.
Signed-off-by: Kees Cook <[email protected]> --- Cc: "David S. Miller" <[email protected]> Cc: Eric Dumazet <[email protected]> Cc: Jakub Kicinski <[email protected]> Cc: Paolo Abeni <[email protected]> Cc: [email protected] --- net/core/dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c index 45a8c3dd4a64..5abfd29a35bf 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -9183,7 +9183,8 @@ EXPORT_SYMBOL(dev_pre_changeaddr_notify); /** * dev_set_mac_address - Change Media Access Control Address * @dev: device - * @sa: new address + * @sa: new address in a classic "struct sockaddr", which will never + * have more than 14 bytes in @sa::sa_data * @extack: netlink extended ack * * Change the hardware (MAC) address of the device @@ -9217,6 +9218,7 @@ EXPORT_SYMBOL(dev_set_mac_address); DECLARE_RWSEM(dev_addr_sem); +/* "sa" is a classic sockaddr: it will only ever use 14 bytes from sa_data. */ int dev_set_mac_address_user(struct net_device *dev, struct sockaddr *sa, struct netlink_ext_ack *extack) { @@ -9229,6 +9231,7 @@ int dev_set_mac_address_user(struct net_device *dev, struct sockaddr *sa, } EXPORT_SYMBOL(dev_set_mac_address_user); +/* "sa" is a classic sockaddr: it will only ever use 14 bytes from sa_data. */ int dev_get_mac_address(struct sockaddr *sa, struct net *net, char *dev_name) { size_t size = sizeof(sa->sa_data_min); -- 2.34.1
