diff options
author | openeuler-ci-bot <george@openeuler.sh> | 2024-04-24 07:20:42 +0000 |
---|---|---|
committer | Gitee <noreply@gitee.com> | 2024-04-24 07:20:42 +0000 |
commit | 482093a21fc2138432e3ddff393b5c99b2fb8ca0 (patch) | |
tree | f36bffe84cdafb2b43aa419b681d25da210e58a0 | |
parent | 5868257a4ccef380f8590e2f9f8ea439a2c33486 (diff) | |
parent | 2e1f14848cfb3f63894f64d4b0f11c388c578dd1 (diff) | |
download | openEuler-kernel-482093a21fc2138432e3ddff393b5c99b2fb8ca0.tar.gz |
!6536 [sync] PR-5222: powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
Merge Pull Request from: @openeuler-sync-bot
Origin pull request:
https://gitee.com/openeuler/kernel/pulls/5222
PR sync from: Peng Zhang <zhangpeng362@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/YFPZEZXT3Q2NAP566YHFU6RKNBGTDEF4/
https://gitee.com/src-openeuler/kernel/issues/I96GP1
Link:https://gitee.com/openeuler/kernel/pulls/6536
Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com>
-rw-r--r-- | arch/powerpc/mm/init-common.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/mm/init-common.c b/arch/powerpc/mm/init-common.c index 8e0d792ac2967c..52a20c97e46eda 100644 --- a/arch/powerpc/mm/init-common.c +++ b/arch/powerpc/mm/init-common.c @@ -111,7 +111,7 @@ void pgtable_cache_add(unsigned int shift) * as to leave enough 0 bits in the address to contain it. */ unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1, HUGEPD_SHIFT_MASK + 1); - struct kmem_cache *new; + struct kmem_cache *new = NULL; /* It would be nice if this was a BUILD_BUG_ON(), but at the * moment, gcc doesn't seem to recognize is_power_of_2 as a @@ -124,7 +124,8 @@ void pgtable_cache_add(unsigned int shift) align = max_t(unsigned long, align, minalign); name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift); - new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); + if (name) + new = kmem_cache_create(name, table_size, align, 0, ctor(shift)); if (!new) panic("Could not allocate pgtable cache for order %d", shift); |