As the possible failure of the kmalloc(), it should be better
to check it and print a warning message.
Signed-off-by: Li Qiong <[email protected]>
---
security/smack/smackfs.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
index 4b58526450d4..0d11ba3cb4cd 100644
--- a/security/smack/smackfs.c
+++ b/security/smack/smackfs.c
@@ -695,6 +695,11 @@ static void smk_cipso_doi(void)
__func__, __LINE__, rc);
doip = kmalloc(sizeof(struct cipso_v4_doi), GFP_KERNEL | __GFP_NOFAIL);
+ if (unlikely(!doip)) {
+ printk(KERN_WARNING "%s:%d failed to allocate a memory for doip\n",
+ __func__, __LINE__);
+ return;
+ }
doip->map.std = NULL;
doip->doi = smk_cipso_doi_value;
doip->type = CIPSO_V4_MAP_PASS;
--
2.25.1
在 2022年06月13日 22:53, Casey Schaufler 写道:
> On 6/12/2022 11:22 PM, Li Qiong wrote:
>> As the possible failure of the kmalloc(), it should be better
>> to check it and print a warning message.
>
> The allocation is done with __GFP_NOFAIL, which assures
> it will not fail.
Thanks, my mistake.
Drop this patch.
>
>>
>> Signed-off-by: Li Qiong <[email protected]>
>> ---
>> security/smack/smackfs.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
>> index 4b58526450d4..0d11ba3cb4cd 100644
>> --- a/security/smack/smackfs.c
>> +++ b/security/smack/smackfs.c
>> @@ -695,6 +695,11 @@ static void smk_cipso_doi(void)
>> __func__, __LINE__, rc);
>> doip = kmalloc(sizeof(struct cipso_v4_doi), GFP_KERNEL | __GFP_NOFAIL);
>> + if (unlikely(!doip)) {
>> + printk(KERN_WARNING "%s:%d failed to allocate a memory for doip\n",
>> + __func__, __LINE__);
>> + return;
>> + }
>> doip->map.std = NULL;
>> doip->doi = smk_cipso_doi_value;
>> doip->type = CIPSO_V4_MAP_PASS;
On 6/12/2022 11:22 PM, Li Qiong wrote:
> As the possible failure of the kmalloc(), it should be better
> to check it and print a warning message.
The allocation is done with __GFP_NOFAIL, which assures
it will not fail.
>
> Signed-off-by: Li Qiong <[email protected]>
> ---
> security/smack/smackfs.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
> index 4b58526450d4..0d11ba3cb4cd 100644
> --- a/security/smack/smackfs.c
> +++ b/security/smack/smackfs.c
> @@ -695,6 +695,11 @@ static void smk_cipso_doi(void)
> __func__, __LINE__, rc);
>
> doip = kmalloc(sizeof(struct cipso_v4_doi), GFP_KERNEL | __GFP_NOFAIL);
> + if (unlikely(!doip)) {
> + printk(KERN_WARNING "%s:%d failed to allocate a memory for doip\n",
> + __func__, __LINE__);
> + return;
> + }
> doip->map.std = NULL;
> doip->doi = smk_cipso_doi_value;
> doip->type = CIPSO_V4_MAP_PASS;