[PATCH v3] libfdt: Add support for using aliases in fdt_path_offset()
Scott Wood
scottwood at freescale.com
Fri Aug 15 03:43:48 EST 2008
On Thu, Aug 14, 2008 at 08:28:19AM -0500, Kumar Gala wrote:
> - if (*path != '/')
> - return -FDT_ERR_BADPATH;
> + /* see if we have an alias */
> + if (*path != '/') {
> + const char *q;
> + int aliasoffset = fdt_path_offset(fdt, "/aliases");
> +
> + if (aliasoffset < 0)
> + return -FDT_ERR_BADPATH;
> +
> + q = strchr(path, '/');
> + if (!q)
> + q = end;
> +
> + p = fdt_getprop_namelen(fdt, aliasoffset, path, q - p, NULL);
> + if (!p)
> + return -FDT_ERR_BADPATH;
> + offset = fdt_path_offset(fdt, p);
> +
> + p = q;
> + }
Can we limit the recursion depth to avoid falling off the stack if an
alias points to itself? Or if aliases pointing to aliases are
disallowed, check for a leading '/' before recursively calling
fdt_path_offset.
-Scott
More information about the devicetree-discuss
mailing list