Skip to content
Commit cf85cd84 authored by Franco Venturi's avatar Franco Venturi Committed by Tom Rini
Browse files

mmc: fix signed vs unsigned compare in read check in _spl_load()

Fix signed vs unsigned compare in read check in _spl_load()

Issue: when info->read() returns a negative value because of an error,
       the comparison of 'read' (signed) with 'sizeof(*header)'
       (unsigned silently converts the negative value into a very
       large unsigned value and the check on the error condition
       always return false, i.e. the error is not detected
Symptoms: if spl_load_image_fat() is unable to find the file 'uImage',
          the SPL phase of the boot process just hangs after displaying
          the following line:
          Trying to boot from MMC1
Fix: cast 'sizeof(*header)' to int so the compare is now between
     signed types
Reference: https://stackoverflow.com/questions/17293749/sizeof-operator-in-if-statement



Signed-off-by: default avatarFranco Venturi <fventuri@comcast.net>
Reviewed-by: default avatarSean Anderson <seanga2@gmail.com>
Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
parent 7c2c235a
Loading
Loading
Loading
Loading