[U-Boot] [PATCH 3/4] lib: decode_timing_property should return -NOENT when proprty is not found

Simon Glass sjg at chromium.org
Tue Feb 19 15:17:01 UTC 2019


Hi,

On Sat, 9 Feb 2019 at 06:44, <megous at megous.com> wrote:
>
> From: Ondrej Jirman <megous at megous.com>
>
> Length may be unitialized when fdt_getprop fails.

Not according to the docs:

 * if lenp is non-NULL, *lenp contains the length of the property
 * value (>=0)
 * NULL, on error
 * if lenp is non-NULL, *lenp contains an error code (<0):
 * -FDT_ERR_NOTFOUND, node does not have named property
 * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE
 * tag
 * -FDT_ERR_BADMAGIC,
 * -FDT_ERR_BADVERSION,
 * -FDT_ERR_BADSTATE,
 * -FDT_ERR_BADSTRUCTURE,
 * -FDT_ERR_TRUNCATED, standard meanings

I suspect there might be a bug. Can you provide a few more details?

>
> Signed-off-by: Ondřej Jirman <megous at megous.com>
> ---
>  lib/fdtdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index 18663ce6bd..3510de78e1 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -980,7 +980,7 @@ static int decode_timing_property(const void *blob, int node, const char *name,
>         if (!prop) {
>                 debug("%s: could not find property %s\n",
>                       fdt_get_name(blob, node, NULL), name);
> -               return length;
> +               return -ENOENT;
>         }
>
>         if (length == sizeof(u32)) {
> --
> 2.20.1
>

Regards,
Simon


More information about the U-Boot mailing list