[PATCH] tools/mm: Use calloc and check the potential memory allocation failure

Zhu Jun posted 1 patch 1 year, 3 months ago
tools/mm/page_owner_sort.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[PATCH] tools/mm: Use calloc and check the potential memory allocation failure
Posted by Zhu Jun 1 year, 3 months ago
Replace malloc with calloc and add memory allocating check
of comm_str before used.

Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
---
 tools/mm/page_owner_sort.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c
index e1f264444342..4e2329831810 100644
--- a/tools/mm/page_owner_sort.c
+++ b/tools/mm/page_owner_sort.c
@@ -368,9 +368,12 @@ static __u64 get_ts_nsec(char *buf)
 
 static char *get_comm(char *buf)
 {
-	char *comm_str = malloc(TASK_COMM_LEN);
+	char *comm_str = calloc(TASK_COMM_LEN, sizeof(char));
 
-	memset(comm_str, 0, TASK_COMM_LEN);
+	if (!comm_str) {
+		fprintf(stderr, "Out of memory\n");
+		return NULL;
+	}
 
 	search_pattern(&comm_pattern, comm_str, buf);
 	errno = 0;
-- 
2.17.1
Re: [PATCH] tools/mm: Use calloc and check the potential memory allocation failure
Posted by Markus Elfring 1 year, 3 months ago
> Replace malloc with calloc and add memory allocating check

                      memset(…, 0, …) call by calloc()?


> of comm_str before used.

* Add also a null pointer check for the detection of a memory allocation failure.

* Would you like to improve such a change description another bit
  (with tags like “Fixes” and “Cc”)?

* How do you think about to omit the statement “fprintf(stderr, "Out of memory\n");”?

* I suggest to omit the word “potential” from the summary phrase.


Regards,
Markus
Re: [PATCH] tools/mm: Use calloc and check the potential memory allocation failure
Posted by Dev Jain 1 year, 3 months ago
On 8/29/24 11:55, Markus Elfring wrote:
>> Replace malloc with calloc and add memory allocating check
>                        memset(…, 0, …) call by calloc()?

Calloc returns zeroed-out memory.

>
>
>> of comm_str before used.
> * Add also a null pointer check for the detection of a memory allocation failure.

Which is exactly what Zhu has done?

>
> * Would you like to improve such a change description another bit
>    (with tags like “Fixes” and “Cc”)?
>
> * How do you think about to omit the statement “fprintf(stderr, "Out of memory\n");”?

Why?

>
> * I suggest to omit the word “potential” from the summary phrase.
>
>
> Regards,
> Markus
>
Re: tools/mm: Use calloc and check the potential memory allocation failure
Posted by Markus Elfring 1 year, 3 months ago
>>> Replace malloc with calloc and add memory allocating check
>>                        memset(…, 0, …) call by calloc()?
>
> Calloc returns zeroed-out memory.

I propose to improve the change description considerably.


>>> of comm_str before used.
>> * Add also a null pointer check for the detection of a memory allocation failure.
>
> Which is exactly what Zhu has done?

Can the commit message become nicer anyhow?


…
>> * How do you think about to omit the statement “fprintf(stderr, "Out of memory\n");”?
>
> Why?

I imagine that a returned null pointer can eventually be sufficient already.
Would you get helpful background information from the variable “errno”?

Regards,
Markus
Re: tools/mm: Use calloc and check the potential memory allocation failure
Posted by Dev Jain 1 year, 3 months ago
On 8/29/24 13:25, Markus Elfring wrote:
>>>> Replace malloc with calloc and add memory allocating check
>>>                         memset(…, 0, …) call by calloc()?
>> Calloc returns zeroed-out memory.
> I propose to improve the change description considerably.
>
>
>>>> of comm_str before used.
>>> * Add also a null pointer check for the detection of a memory allocation failure.
>> Which is exactly what Zhu has done?
> Can the commit message become nicer anyhow?

I agree. The commit message should note two things, first that
a malloc followed by a memset to 0 can be reduced to single calloc,
and second that, "add memory allocating check" can be replaced by
"add null pointer check in case of allocation failure".

>
>
> …
>>> * How do you think about to omit the statement “fprintf(stderr, "Out of memory\n");”?
>> Why?
> I imagine that a returned null pointer can eventually be sufficient already.
> Would you get helpful background information from the variable “errno”?

In case of calloc failure, errno is always set to ENOMEM, so we are guaranteed
that any failure is an out of memory failure.

>
> Regards,
> Markus