2020-05-23 15:52:04

by chengkaitao

[permalink] [raw]
Subject: [PATCH] proc/fd: Remove the initialization of variables in seq_show()

The variables{files, file} will definitely be assigned,
so we don't need to initialize them.

Signed-off-by: Kaitao Cheng <[email protected]>
---
fs/proc/fd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/proc/fd.c b/fs/proc/fd.c
index 81882a13212d..6f95baf44e37 100644
--- a/fs/proc/fd.c
+++ b/fs/proc/fd.c
@@ -19,9 +19,9 @@

static int seq_show(struct seq_file *m, void *v)
{
- struct files_struct *files = NULL;
+ struct files_struct *files;
int f_flags = 0, ret = -ENOENT;
- struct file *file = NULL;
+ struct file *file;
struct task_struct *task;

task = get_proc_task(m->private);
--
2.20.1


2020-05-24 07:48:57

by Markus Elfring

[permalink] [raw]
Subject: Re: [PATCH] proc/fd: Remove the initialization of variables in seq_show()

> The variables{files, file} will definitely be assigned,

I find an other specification nicer for these identifiers.


> so we don't need to initialize them.

I suggest to recheck programming concerns around the handling
of the null pointer for the variable “file”.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/fd.c?id=caffb99b6929f41a69edbb5aef3a359bf45f3315#n20
https://elixir.bootlin.com/linux/v5.7-rc6/source/fs/proc/fd.c#L20

Will another imperative wording be preferred for the change description?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?id=caffb99b6929f41a69edbb5aef3a359bf45f3315#n151

Regards,
Markus

2020-05-28 12:54:03

by chengkaitao

[permalink] [raw]
Subject: Re: [PATCH] proc/fd: Remove the initialization of variables in seq_show()

> > The variables{files, file} will definitely be assigned,
>
> I find an other specification nicer for these identifiers.
>
>
> > so we don't need to initialize them.
>
> I suggest to recheck programming concerns around the handling
> of the null pointer for the variable “file”.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/fd.c?id=caffb99b6929f41a69edbb5aef3a359bf45f3315#n20
> https://elixir.bootlin.com/linux/v5.7-rc6/source/fs/proc/fd.c#L20

We don't need to initialize the variable “file”.
On line 34, if (files) is true,
{file = fcheck_files(files, fd)} will be executed on line 38.
On line 34, if (files) is flse,
{return ret;} will be executed on line 54, and seq_show() will exit directly.
I don't find the programming concerns around the handling of the null
pointer for the variable “file”.

If you have other suggestions, please elaborate on the details.

--
Yours,
Kaitao Cheng

2020-05-28 16:09:17

by Markus Elfring

[permalink] [raw]
Subject: Re: proc/fd: Remove the initialization of variables in seq_show()

>>> The variables{files, file} will definitely be assigned,
>>
>> I find an other specification nicer for these identifiers.
>>
>>
>>> so we don't need to initialize them.

> We don't need to initialize the variable “file”.

I can agree to this interpretation of the software situation
because there is a precondition involved for the variable “ret”.
https://elixir.bootlin.com/linux/v5.7-rc7/source/fs/proc/fd.c#L20
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/proc/fd.c?id=b0c3ba31be3e45a130e13b278cf3b90f69bda6f6#n20


> I don't find the programming concerns around the handling of the null
> pointer for the variable “file”.

I find the initial change description too terse and therefore incomplete.


> If you have other suggestions, please elaborate on the details.

I propose to extend the patch.
How do you think about to convert initialisations for the variables
“f_flags” and “ret” also into later assignments?

Regards,
Markus