• Peter Huewe's avatar
    tpm/tpm_i2c_stm_st33: Check return code of get_burstcount · 9bf4d6c3
    Peter Huewe authored
    commit 85c5e0d4 upstream.
    
    The 'get_burstcount' function can in some circumstances 'return -EBUSY' which
    in tpm_stm_i2c_send is stored in an 'u32 burstcnt'
    thus converting the signed value into an unsigned value, resulting
    in 'burstcnt' being huge.
    Changing the type to u32 only does not solve the problem as the signed
    value is converted to an unsigned in I2C_WRITE_DATA, resulting in the
    same effect.
    
    Thus
    -> Change type of burstcnt to u32 (the return type of get_burstcount)
    -> Add a check for the return value of 'get_burstcount' and propagate a
    potential error.
    
    This makes also sense in the 'I2C_READ_DATA' case, where the there is no
    signed/unsigned conversion.
    
    found by coverity
    Signed-off-by: default avatarPeter Huewe <peterhuewe@gmx.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9bf4d6c3
tpm_i2c_stm_st33.c 23 KB