[PATCH] Fix an overflow case in fdt_offset_ptr() detected by GCC 4.3.

David Gibson david at gibson.dropbear.id.au
Fri Sep 26 11:29:34 EST 2008


On Thu, Sep 25, 2008 at 11:02:17AM -0500, Jon Loeliger wrote:
> 
> Using Gcc 4.3 detected this problem:
> 
>     ../dtc/libfdt/fdt.c: In function 'fdt_next_tag':
>     ../dtc/libfdt/fdt.c:82: error: assuming signed overflow does not
>     occur when assuming that (X + c) < X is always false

Um... I'm a little baffled by this warning, given that the line in
question is actually testing that (X+c) < X is false..

> To fix the problem, treat the offset as an unsigned int.

Nor am I entirely sure how that's supposed to help, since an unsigned
overflow is also possible.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson



More information about the devicetree-discuss mailing list