]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.9.30/of-fdt-add-missing-allocation-failure-check.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 4.9.30 / of-fdt-add-missing-allocation-failure-check.patch
1 From 49e67dd17649b60b4d54966e18ec9c80198227f0 Mon Sep 17 00:00:00 2001
2 From: Johan Hovold <johan@kernel.org>
3 Date: Wed, 17 May 2017 17:29:09 +0200
4 Subject: of: fdt: add missing allocation-failure check
5
6 From: Johan Hovold <johan@kernel.org>
7
8 commit 49e67dd17649b60b4d54966e18ec9c80198227f0 upstream.
9
10 The memory allocator passed to __unflatten_device_tree() (e.g. a wrapped
11 kzalloc) can fail so add the missing sanity check to avoid dereferencing
12 a NULL pointer.
13
14 Fixes: fe14042358fa ("of/flattree: Refactor unflatten_device_tree and add fdt_unflatten_tree")
15 Signed-off-by: Johan Hovold <johan@kernel.org>
16 Signed-off-by: Rob Herring <robh@kernel.org>
17 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
18
19 ---
20 drivers/of/fdt.c | 3 +++
21 1 file changed, 3 insertions(+)
22
23 --- a/drivers/of/fdt.c
24 +++ b/drivers/of/fdt.c
25 @@ -505,6 +505,9 @@ static void *__unflatten_device_tree(con
26
27 /* Allocate memory for the expanded device tree */
28 mem = dt_alloc(size + 4, __alignof__(struct device_node));
29 + if (!mem)
30 + return NULL;
31 +
32 memset(mem, 0, size);
33
34 *(__be32 *)(mem + size) = cpu_to_be32(0xdeadbeef);