From bed274bc543cdea243247223ed7ffa6318066690 Mon Sep 17 00:00:00 2001
From: Lu Jialin <lujialin4@huawei.com>
Date: Sun, 18 Jul 2021 00:25:56 +0800
Subject: [PATCH] memcg: fix unsuitable null check after alloc memory

hulk inclusion
category: bugfix
bugzilla: 51815, https://gitee.com/openeuler/kernel/issues/I3IJ9I
CVE: NA

--------

Signed-off-by: Lu Jialin <lujialin4@huawei.com>
Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
 mm/memcontrol.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 713a839013f7..e55b46d5d0fc 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -4850,8 +4850,7 @@ static int alloc_mem_cgroup_per_node_info(struct mem_cgroup *memcg, int node)
 	if (!node_state(node, N_NORMAL_MEMORY))
 		tmp = -1;
 	pn_ext = kzalloc_node(sizeof(*pn_ext), GFP_KERNEL, tmp);
-	pn = &pn_ext->pn;
-	if (!pn)
+	if (!pn_ext)
 		return 1;
 
 	pn_ext->lruvec_stat_local = alloc_percpu(struct lruvec_stat);
@@ -4860,6 +4859,7 @@ static int alloc_mem_cgroup_per_node_info(struct mem_cgroup *memcg, int node)
 		return 1;
 	}
 
+	pn = &pn_ext->pn;
 	pn->lruvec_stat_cpu = alloc_percpu(struct lruvec_stat);
 	if (!pn->lruvec_stat_cpu) {
 		free_percpu(pn_ext->lruvec_stat_local);
@@ -4927,10 +4927,10 @@ static struct mem_cgroup *mem_cgroup_alloc(void)
 	size += nr_node_ids * sizeof(struct mem_cgroup_per_node *);
 
 	memcg_ext = kzalloc(size, GFP_KERNEL);
-	memcg = &memcg_ext->memcg;
-	if (!memcg)
+	if (!memcg_ext)
 		return NULL;
 
+	memcg = &memcg_ext->memcg;
 	memcg->id.id = idr_alloc(&mem_cgroup_idr, NULL,
 				 1, MEM_CGROUP_ID_MAX,
 				 GFP_KERNEL);
-- 
GitLab