fdt_region: Ensure that depth never goes below -1
[oweals/u-boot.git] / lib / libfdt / fdt_region.c
index d3b9a60e994f998be93e27f8e6875d6f178790e1..7e9fa9272e80bdf6d2deda20c284344a646b1ded 100644 (file)
@@ -96,6 +96,9 @@ int fdt_find_regions(const void *fdt, char * const inc[], int inc_count,
                        break;
 
                case FDT_END_NODE:
+                       /* Depth must never go below -1 */
+                       if (depth < 0)
+                               return -FDT_ERR_BADSTRUCTURE;
                        include = want;
                        want = stack[depth--];
                        while (end > path && *--end != '/')