• Daniel Vetter's avatar
    drm/i2c/tda998x: Fix signed overflow issue · 8268bd48
    Daniel Vetter authored
    This is C standard hair-splitting, but afaict
    - sum will be promoted to signed int in computation since
      uint8_t fits
    - signed overflow is undefined.
    
    No we need to add up an awful lot of bytes to actually make it
    overflow. But I guess the real risk is gcc spotting this and going
    bananas. Fix this by simply using unsigned in to force all computations
    to use the well-defined unsigned behaviour.
    
    Spotted by coverity.
    
    v2: Simplify the entire computation as suggested by Jean.
    
    Cc: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: Jean-Francois Moine <moinejf@free.fr>
    Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    8268bd48
tda998x_drv.c 43.3 KB