All of lore.kernel.org
 help / color / mirror / Atom feed
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.