libfdt: Fix use of uninitialized variable in fdt_get_path()
    David Gibson 
    david at gibson.dropbear.id.au
       
    Fri Aug 31 14:30:16 EST 2007
    
    
  
My recent implemenetation of fdt_get_path() had a bug - the while loop
tested offset which was unitialized on the first iteration.  Depending
on code surrounding the call, this could cause fdt_get_path() to
return incorrect results.
This patch corrects the problem by applying some more correct thinking
to the loop condition.
Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
Index: dtc/libfdt/fdt_ro.c
===================================================================
--- dtc.orig/libfdt/fdt_ro.c	2007-08-31 14:26:26.000000000 +1000
+++ dtc/libfdt/fdt_ro.c	2007-08-31 14:26:31.000000000 +1000
@@ -302,7 +302,7 @@
 	buf[0] = '/';
 	p = 1;
 
-	while (offset < nodeoffset) {
+	while (nextoffset <= nodeoffset) {
 		offset = nextoffset;
 		tag = _fdt_next_tag(fdt, offset, &nextoffset);
 		switch (tag) {
-- 
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 Linuxppc-dev
mailing list