diff for duplicates of <57A0320D.6070102@zoho.com> diff --git a/a/1.txt b/N1/1.txt index 9bdc4ad..72c17ae 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -10,3 +10,44 @@ Hi Andrew, this patch is part of https://lkml.org/lkml/2016/7/26/347 and isn't merged in as you advised in another mail, i release this patch against linus's mainline for fixing relevant bugs completely + +>From 5d79c31d755dc3f03ecc5b4134f21793258636cd Mon Sep 17 00:00:00 2001 +From: zijun_hu <zijun_hu@htc.com> +Date: Tue, 2 Aug 2016 12:35:28 +0800 +Subject: [PATCH] mm/memblock.c: fix NULL dereference error + +it causes NULL dereference error and failure to get type_a->regions[0] info +if parameter type_b of __next_mem_range_rev() == NULL + +the bugs are fixed by checking before dereferring and initializing idx_b +to 0 + +the approach is tested by dumping all types of region via +__memblock_dump_all() and __next_mem_range_rev() fixed to UART separately +the result is okay after checking the logs + +Signed-off-by: zijun_hu <zijun_hu@htc.com> +Tested-by: zijun_hu <zijun_hu@htc.com> +Acked-by: Tejun Heo <tj@kernel.org> +--- + mm/memblock.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/mm/memblock.c b/mm/memblock.c +index ff5ff3b..250dd48 100644 +--- a/mm/memblock.c ++++ b/mm/memblock.c +@@ -994,7 +994,10 @@ void __init_memblock __next_mem_range_rev(u64 *idx, int nid, ulong flags, + + if (*idx == (u64)ULLONG_MAX) { + idx_a = type_a->cnt - 1; +- idx_b = type_b->cnt; ++ if (type_b != NULL) ++ idx_b = type_b->cnt; ++ else ++ idx_b = 0; + } + + for (; idx_a >= 0; idx_a--) { +-- +1.9.1 diff --git a/a/content_digest b/N1/content_digest index c0248de..9bd2cce 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -27,6 +27,47 @@ "\n" "this patch is part of https://lkml.org/lkml/2016/7/26/347 and isn't merged in\n" "as you advised in another mail, i release this patch against linus's mainline\n" - for fixing relevant bugs completely + "for fixing relevant bugs completely\n" + "\n" + ">From 5d79c31d755dc3f03ecc5b4134f21793258636cd Mon Sep 17 00:00:00 2001\n" + "From: zijun_hu <zijun_hu@htc.com>\n" + "Date: Tue, 2 Aug 2016 12:35:28 +0800\n" + "Subject: [PATCH] mm/memblock.c: fix NULL dereference error\n" + "\n" + "it causes NULL dereference error and failure to get type_a->regions[0] info\n" + "if parameter type_b of __next_mem_range_rev() == NULL\n" + "\n" + "the bugs are fixed by checking before dereferring and initializing idx_b\n" + "to 0\n" + "\n" + "the approach is tested by dumping all types of region via\n" + "__memblock_dump_all() and __next_mem_range_rev() fixed to UART separately\n" + "the result is okay after checking the logs\n" + "\n" + "Signed-off-by: zijun_hu <zijun_hu@htc.com>\n" + "Tested-by: zijun_hu <zijun_hu@htc.com>\n" + "Acked-by: Tejun Heo <tj@kernel.org>\n" + "---\n" + " mm/memblock.c | 5 ++++-\n" + " 1 file changed, 4 insertions(+), 1 deletion(-)\n" + "\n" + "diff --git a/mm/memblock.c b/mm/memblock.c\n" + "index ff5ff3b..250dd48 100644\n" + "--- a/mm/memblock.c\n" + "+++ b/mm/memblock.c\n" + "@@ -994,7 +994,10 @@ void __init_memblock __next_mem_range_rev(u64 *idx, int nid, ulong flags,\n" + " \n" + " \tif (*idx == (u64)ULLONG_MAX) {\n" + " \t\tidx_a = type_a->cnt - 1;\n" + "-\t\tidx_b = type_b->cnt;\n" + "+\t\tif (type_b != NULL)\n" + "+\t\t\tidx_b = type_b->cnt;\n" + "+\t\telse\n" + "+\t\t\tidx_b = 0;\n" + " \t}\n" + " \n" + " \tfor (; idx_a >= 0; idx_a--) {\n" + "-- \n" + 1.9.1 -3f9b3b3e5f87891d436b7ca9d67797084485969ec4b20cb2f6b24fae4839eba0 +351a94b9cf8924ed1568fe73bfa51b66af5579df38cf2c503a32b98ba299f7d9
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.