On Fri, Jan 11, 2013 at 7:35 AM, Marek Vasut <[email protected]> wrote:
> In case a function argument is known/fixed size array in C, the argument is
> still decoyed as pointer instead ( T f(U n[k]) ~= T fn(U *n) ) and therefore
> calling sizeof on the function argument will result in the size of the 
> pointer,
> not the size of the array.
>
> The VFAT code contains such a bug, this patch fixes it.
>
> Reported-by: Aaron Williams <[email protected]>
> Signed-off-by: Marek Vasut <[email protected]>
> Cc: Tom Rini <[email protected]>
> Cc: Aaron Williams <[email protected]>
> ---
>  fs/fat/fat.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fat/fat.c b/fs/fat/fat.c
> index 393c378..25d3318 100644
> --- a/fs/fat/fat.c
> +++ b/fs/fat/fat.c
> @@ -569,9 +569,9 @@ static __u8 mkcksum(const char name[8], const char ext[3])
>
>         __u8 ret = 0;
>
> -       for (i = 0; i < sizeof(name); i++)
> +       for (i = 0; i < 8; i++)
>                 ret = (((ret & 1) << 7) | ((ret & 0xfe) >> 1)) + name[i];
> -       for (i = 0; i < sizeof(ext); i++)
> +       for (i = 0; i < 3; i++)
>                 ret = (((ret & 1) << 7) | ((ret & 0xfe) >> 1)) + ext[i];
>
>         return ret;


Reviewed-by: Joe Hershberger <[email protected]>
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to