2018-06-12 04:23:25

by Zhouyang Jia

[permalink] [raw]
Subject: [PATCH] inotify: add error handling for kmem_cache_create

When kmem_cache_create fails, the lack of error-handling code may
cause unexpected results.

This patch adds error-handling code after calling kmem_cache_create.

Signed-off-by: Zhouyang Jia <[email protected]>
---
fs/notify/inotify/inotify_user.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index ef32f36..0704bab 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -805,6 +805,8 @@ static int __init inotify_user_setup(void)
BUG_ON(hweight32(ALL_INOTIFY_BITS) != 21);

inotify_inode_mark_cachep = KMEM_CACHE(inotify_inode_mark, SLAB_PANIC);
+ if (!inotify_inode_mark_cachep)
+ return -ENOMEM;

inotify_max_queued_events = 16384;
init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES] = 128;
--
2.7.4



2018-06-12 07:43:35

by Chengguang Xu

[permalink] [raw]
Subject: Re: [PATCH] inotify: add error handling for kmem_cache_create


> ?? 2018??6??12?գ?????12:22??Zhouyang Jia <[email protected]> д????
>
> When kmem_cache_create fails, the lack of error-handling code may
> cause unexpected results.
>
> This patch adds error-handling code after calling kmem_cache_create.

I think SLAB_PANIC can handle this case.

Thanks,
Chengguang.

>
> Signed-off-by: Zhouyang Jia <[email protected]>
> ---
> fs/notify/inotify/inotify_user.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
> index ef32f36..0704bab 100644
> --- a/fs/notify/inotify/inotify_user.c
> +++ b/fs/notify/inotify/inotify_user.c
> @@ -805,6 +805,8 @@ static int __init inotify_user_setup(void)
> BUG_ON(hweight32(ALL_INOTIFY_BITS) != 21);
>
> inotify_inode_mark_cachep = KMEM_CACHE(inotify_inode_mark, SLAB_PANIC);
> + if (!inotify_inode_mark_cachep)
> + return -ENOMEM;
>
> inotify_max_queued_events = 16384;
> init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES] = 128;
> --
> 2.7.4
>


2018-06-12 09:54:01

by Kassey

[permalink] [raw]
Subject: Re: [PATCH] inotify: add error handling for kmem_cache_create

in __kmem_cache_create->kmem_cache_open

with SLAB_PANIC, kernel will panic if it fail

On Tue, Jun 12, 2018 at 3:41 PM, [email protected] <[email protected]> wrote:
>
>> 在 2018年6月12日,下午12:22,Zhouyang Jia <[email protected]> 写道:
>>
>> When kmem_cache_create fails, the lack of error-handling code may
>> cause unexpected results.
>>
>> This patch adds error-handling code after calling kmem_cache_create.
>
> I think SLAB_PANIC can handle this case.
>
> Thanks,
> Chengguang.
>
>>
>> Signed-off-by: Zhouyang Jia <[email protected]>
>> ---
>> fs/notify/inotify/inotify_user.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
>> index ef32f36..0704bab 100644
>> --- a/fs/notify/inotify/inotify_user.c
>> +++ b/fs/notify/inotify/inotify_user.c
>> @@ -805,6 +805,8 @@ static int __init inotify_user_setup(void)
>> BUG_ON(hweight32(ALL_INOTIFY_BITS) != 21);
>>
>> inotify_inode_mark_cachep = KMEM_CACHE(inotify_inode_mark, SLAB_PANIC);
>> + if (!inotify_inode_mark_cachep)
>> + return -ENOMEM;
>>
>> inotify_max_queued_events = 16384;
>> init_user_ns.ucount_max[UCOUNT_INOTIFY_INSTANCES] = 128;
>> --
>> 2.7.4
>>
>



--
Best regards
Kassey