• Frans Klaver's avatar
    eeepc-laptop: make fan1_input really read-only · 48d4a5b2
    Frans Klaver authored
    In the instantiation of the fan1_input device attribute, NULL is passed
    as set function to store_sys_hwmon. The function pointer is never
    checked before dereferencing it. This is fine if we can guarantee that
    it will never be called with an invalid pointer, but we can't. If
    someone from user space decides to change the permissions on this
    attribute and write to it, kernel will crash.
    
    Introduce EEEPC_CREATE_SENSOR_ATTR_RO() to instantiate a read-only
    attribute, and declare fan1_input with it. This ensures store_sys_hwmon
    is never called with NULL parameters. If someone tries to write the
    attribute, the system will at least keep its sanity.
    
    This also causes EEEPC_CREATE_SENSOR_ATTR() to be only used for R/W
    attributes.This enables us to drop the _mode argument from the macro
    and use DEVICE_ATTR_RW() internally while we're at it. Append _RW to the
    name for readability.
    Signed-off-by: default avatarFrans Klaver <fransklaver@gmail.com>
    Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
    48d4a5b2
eeepc-laptop.c 36 KB