public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] platform: uv: fix missing checks for kcalloc
@ 2019-03-24 22:57 Kangjie Lu
  2019-03-25 12:55 ` Borislav Petkov
  0 siblings, 1 reply; 5+ messages in thread
From: Kangjie Lu @ 2019-03-24 22:57 UTC (permalink / raw)
  To: kjlu
  Cc: pakki001, Darren Hart, Andy Shevchenko, Thomas Gleixner,
	Ingo Molnar, Borislav Petkov, H. Peter Anvin, x86, Mike Travis,
	Kees Cook, Gustavo A. R. Silva, Varsha Rao, Nicolai Stange,
	Andrew Banman, Colin Ian King, platform-driver-x86, linux-kernel

In case kcalloc fails, the patch return an error to avoid
potential NULL pointer dereference.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
---
 arch/x86/platform/uv/tlb_uv.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
index 2c53b0f19329..1ac777f14846 100644
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -2140,7 +2140,13 @@ static int __init init_per_cpu(int nuvhubs, int base_part_pnode)
 		timeout_us = calculate_destination_timeout();
 
 	uvhub_descs = kcalloc(nuvhubs, sizeof(struct uvhub_desc), GFP_KERNEL);
+	if (!uvhub_descs)
+		return 1;
 	uvhub_mask = kzalloc((nuvhubs+7)/8, GFP_KERNEL);
+	if (!uvhub_mask) {
+		kfree(uvhub_descs);
+		return 1;
+	}
 
 	if (get_cpu_topology(base_part_pnode, uvhub_descs, uvhub_mask))
 		goto fail;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-04-23 20:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-24 22:57 [PATCH] platform: uv: fix missing checks for kcalloc Kangjie Lu
2019-03-25 12:55 ` Borislav Petkov
2019-03-25 20:29   ` [PATCH v2] " Kangjie Lu
2019-03-26 16:10     ` [tip:x86/cleanups] x86/platform/uv: Fix missing checks of kcalloc() return values tip-bot for Kangjie Lu
2019-04-23 20:02     ` [PATCH v2] platform: uv: fix missing checks for kcalloc Kees Cook

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox