diff options
author | Hristo Venev <hristo@venev.name> | 2022-07-16 11:51:34 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2022-07-19 11:51:16 +0200 |
commit | d7241f679a59cfe27f92cb5c6272cb429fb1f7ec (patch) | |
tree | aed68f298614c396a3a3212ab03e5ff805f4b876 /drivers/net/ethernet/emulex/benet/be_cmds.h | |
parent | net: stmmac: remove redunctant disable xPCS EEE call (diff) | |
download | linux-dev-d7241f679a59cfe27f92cb5c6272cb429fb1f7ec.tar.xz linux-dev-d7241f679a59cfe27f92cb5c6272cb429fb1f7ec.zip |
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>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index db1f3b908582..e2085c68c0ee 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h @@ -2427,7 +2427,7 @@ int be_cmd_set_beacon_state(struct be_adapter *adapter, u8 port_num, u8 beacon, int be_cmd_get_beacon_state(struct be_adapter *adapter, u8 port_num, u32 *state); int be_cmd_read_port_transceiver_data(struct be_adapter *adapter, - u8 page_num, u8 *data); + u8 page_num, u32 off, u32 len, u8 *data); int be_cmd_query_cable_type(struct be_adapter *adapter); int be_cmd_query_sfp_info(struct be_adapter *adapter); int lancer_cmd_read_object(struct be_adapter *adapter, struct be_dma_mem *cmd, |