From 82574e9e7e3c357ef2fe36abed9efc82b73b5f5b Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Tue, 23 Feb 2021 09:50:35 +0100 Subject: of: fdt: Add root name checks during unflattening In a valid dtb the root node must have an empty name. Also, every other node name must be non empty. Add additional checks for this for better protection against invalid dtbs. Signed-off-by: Sascha Hauer --- drivers/of/fdt.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index a31e2c348a..d98913e54a 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -184,10 +184,21 @@ static struct device_node *__of_unflatten_dtb(const void *infdt, bool constprops goto err; } - if (!node) + if (!node) { + /* The root node must have an empty name */ + if (*pathp) { + ret = -EINVAL; + goto err; + } node = root; - else + } else { + /* Only the root node may have an empty name */ + if (!*pathp) { + ret = -EINVAL; + goto err; + } node = of_new_node(node, pathp); + } dt_struct = dt_struct_advance(&f, dt_struct, sizeof(struct fdt_node_header) + len + 1); -- cgit v1.2.3 From be077c7512440d1e52f96210a6855f171579f6f5 Mon Sep 17 00:00:00 2001 From: Uwe Kleine-König Date: Tue, 23 Feb 2021 18:28:51 +0100 Subject: ARM: davinci: Replace license and copyright boilerplate by SPDX identifiers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Converts the files that licensecheck can determine to be licensed under GPL-2.0-only or GPL-2.0-or-later and also convert the copyright statements to SPDX. Signed-off-by: Uwe Kleine-König Signed-off-by: Sascha Hauer --- arch/arm/mach-davinci/include/mach/debug_ll.h | 17 ++--------------- arch/arm/mach-davinci/include/mach/hardware.h | 8 +++----- arch/arm/mach-davinci/include/mach/serial.h | 8 +++----- arch/arm/mach-davinci/include/mach/time.h | 8 +++----- arch/arm/mach-davinci/time.c | 8 +++----- 5 files changed, 14 insertions(+), 35 deletions(-) diff --git a/arch/arm/mach-davinci/include/mach/debug_ll.h b/arch/arm/mach-davinci/include/mach/debug_ll.h index d509e849f3..60a8d2a5f1 100644 --- a/arch/arm/mach-davinci/include/mach/debug_ll.h +++ b/arch/arm/mach-davinci/include/mach/debug_ll.h @@ -1,18 +1,5 @@ -/* - * Copyright (C) 2014 Antony Pavlov - * - * This file is part of barebox. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* SPDX-FileCopyrightText: 2014 Antony Pavlov */ /** @file * This File contains declaration for early output support diff --git a/arch/arm/mach-davinci/include/mach/hardware.h b/arch/arm/mach-davinci/include/mach/hardware.h index ea9f481844..8ab824800e 100644 --- a/arch/arm/mach-davinci/include/mach/hardware.h +++ b/arch/arm/mach-davinci/include/mach/hardware.h @@ -1,12 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* SPDX-FileCopyrightText: 2007 Deep Root Systems, LLC. */ + /* * Hardware definitions common to all DaVinci family processors * * Author: Kevin Hilman, Deep Root Systems, LLC - * - * 2007 (c) Deep Root Systems, LLC. This file is licensed under - * the terms of the GNU General Public License version 2. This program - * is licensed "as is" without any warranty of any kind, whether express - * or implied. */ #ifndef __ASM_ARCH_HARDWARE_H #define __ASM_ARCH_HARDWARE_H diff --git a/arch/arm/mach-davinci/include/mach/serial.h b/arch/arm/mach-davinci/include/mach/serial.h index bc7449f3d7..03e8ef43dd 100644 --- a/arch/arm/mach-davinci/include/mach/serial.h +++ b/arch/arm/mach-davinci/include/mach/serial.h @@ -1,12 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* SPDX-FileCopyrightText: 2007 MontaVista Software, Inc. */ + /* * DaVinci serial device definitions * * Author: Kevin Hilman, MontaVista Software, Inc. - * - * 2007 (c) MontaVista Software, Inc. This file is licensed under - * the terms of the GNU General Public License version 2. This program - * is licensed "as is" without any warranty of any kind, whether express - * or implied. */ #ifndef __ASM_ARCH_SERIAL_H #define __ASM_ARCH_SERIAL_H diff --git a/arch/arm/mach-davinci/include/mach/time.h b/arch/arm/mach-davinci/include/mach/time.h index 34781b6ec5..6456205859 100644 --- a/arch/arm/mach-davinci/include/mach/time.h +++ b/arch/arm/mach-davinci/include/mach/time.h @@ -1,12 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* SPDX-FileCopyrightText: 2007 MontaVista Software, Inc. */ + /* * Local header file for DaVinci time code. * * Author: Kevin Hilman, MontaVista Software, Inc. - * - * 2007 (c) MontaVista Software, Inc. This file is licensed under - * the terms of the GNU General Public License version 2. This program - * is licensed "as is" without any warranty of any kind, whether express - * or implied. */ #ifndef __ARCH_ARM_MACH_DAVINCI_TIME_H #define __ARCH_ARM_MACH_DAVINCI_TIME_H diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c index 5b57fe6192..52b3ac3e68 100644 --- a/arch/arm/mach-davinci/time.c +++ b/arch/arm/mach-davinci/time.c @@ -1,12 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* SPDX-FileCopyrightText: 2007 MontaVista Software, Inc. */ + /* * DaVinci timer subsystem * * Author: Kevin Hilman, MontaVista Software, Inc. - * - * 2007 (c) MontaVista Software, Inc. This file is licensed under - * the terms of the GNU General Public License version 2. This program - * is licensed "as is" without any warranty of any kind, whether express - * or implied. */ #include -- cgit v1.2.3