• Ido Schimmel's avatar
    ethtool: Fix NULL pointer dereference during module EEPROM dump · 51c96a56
    Ido Schimmel authored
    When get_module_eeprom_by_page() is not implemented by the driver, NULL
    pointer dereference can occur [1].
    
    Fix by testing if get_module_eeprom_by_page() is implemented instead of
    get_module_info().
    
    [1]
     BUG: kernel NULL pointer dereference, address: 0000000000000000
     [...]
     CPU: 0 PID: 251 Comm: ethtool Not tainted 5.13.0-rc3-custom-00940-g3822d067 #989
     Call Trace:
      eeprom_prepare_data+0x101/0x2d0
      ethnl_default_doit+0xc2/0x290
      genl_family_rcv_msg_doit+0xdc/0x140
      genl_rcv_msg+0xd7/0x1d0
      netlink_rcv_skb+0x49/0xf0
      genl_rcv+0x1f/0x30
      netlink_unicast+0x1f6/0x2c0
      netlink_sendmsg+0x1f9/0x400
      __sys_sendto+0xe1/0x130
      __x64_sys_sendto+0x1b/0x20
      do_syscall_64+0x3a/0x70
      entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: c97a31f6 ("ethtool: wire in generic SFP module access")
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Acked-by: default avatarMoshe Shemesh <moshe@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    51c96a56
eeprom.c 6.98 KB