be2net: Fix buffer overflow in be_get_module_eeprom
authorHristo Venev <hristo@venev.name>
Sat, 16 Jul 2022 08:51:34 +0000 (11:51 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 19 Jul 2022 09:51:16 +0000 (11:51 +0200)
commitd7241f679a59cfe27f92cb5c6272cb429fb1f7ec
treeaed68f298614c396a3a3212ab03e5ff805f4b876
parentda791bac104a3169b05b54270afe75daacba4641
be2net: Fix buffer overflow in be_get_module_eeprom

be_cmd_read_port_transceiver_data assumes that it is given a buffer that
is at least PAGE_DATA_LEN long, or twice that if the module supports SFF
8472. However, this is not always the case.

Fix this by passing the desired offset and length to
be_cmd_read_port_transceiver_data so that we only copy the bytes once.

Fixes: e36edd9d26cf ("be2net: add ethtool "-m" option support")
Signed-off-by: Hristo Venev <hristo@venev.name>
Link: https://lore.kernel.org/r/20220716085134.6095-1-hristo@venev.name
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/emulex/benet/be_cmds.c
drivers/net/ethernet/emulex/benet/be_cmds.h
drivers/net/ethernet/emulex/benet/be_ethtool.c