lkml.org 
[lkml]   [2022]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 01/58] of: fdt: fix off-by-one error in unflatten_dt_nodes()
    Date
    From: Sergey Shtylyov <s.shtylyov@omp.ru>

    [ Upstream commit 2f945a792f67815abca26fa8a5e863ccf3fa1181 ]

    Commit 78c44d910d3e ("drivers/of: Fix depth when unflattening devicetree")
    forgot to fix up the depth check in the loop body in unflatten_dt_nodes()
    which makes it possible to overflow the nps[] buffer...

    Found by Linux Verification Center (linuxtesting.org) with the SVACE static
    analysis tool.

    Fixes: 78c44d910d3e ("drivers/of: Fix depth when unflattening devicetree")
    Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/7c354554-006f-6b31-c195-cdfe4caee392@omp.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/of/fdt.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
    index 9fecac72c358..7c284ca0212c 100644
    --- a/drivers/of/fdt.c
    +++ b/drivers/of/fdt.c
    @@ -392,7 +392,7 @@ static int unflatten_dt_nodes(const void *blob,
    for (offset = 0;
    offset >= 0 && depth >= initial_depth;
    offset = fdt_next_node(blob, offset, &depth)) {
    - if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH))
    + if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH - 1))
    continue;

    if (!IS_ENABLED(CONFIG_OF_KOBJ) &&
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-09-26 12:28    [W:4.471 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site