• Max Staudt's avatar
    HID: playstation: DS4: Fix calibration workaround for clone devices · 947992c7
    Max Staudt authored
    The logic in dualshock4_get_calibration_data() used uninitialised data
    in case of a failed kzalloc() for the transfer buffer.
    
    The solution is to group all business logic and all sanity checks
    together, and jump only to the latter in case of an error.
    While we're at it, factor out the axes' labelling, since it must happen
    either way for input_report_abs() to succeed later on.
    
    Thanks to Dan Carpenter for the Smatch static checker warning.
    
    Fixes: a48a7cd8 ("HID: playstation: DS4: Don't fail on calibration data request")
    Signed-off-by: default avatarMax Staudt <max@enpas.org>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
    947992c7
hid-playstation.c 86.1 KB