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

Zhu Jun posted 1 patch 2 months ago
tools/mm/page_owner_sort.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
[PATCH v2] tools/mm: Use calloc and check the memory allocation failure
Posted by Zhu Jun 2 months ago
Replace malloc with calloc and add null pointer check
in case of allocation failure.

Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
---
v1->v2:
	modify commit message and delete fprintf line

 tools/mm/page_owner_sort.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/mm/page_owner_sort.c b/tools/mm/page_owner_sort.c
index e1f264444342..8c78265cef67 100644
--- a/tools/mm/page_owner_sort.c
+++ b/tools/mm/page_owner_sort.c
@@ -368,9 +368,10 @@ 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)
+		return NULL;
 
 	search_pattern(&comm_pattern, comm_str, buf);
 	errno = 0;
-- 
2.17.1
Re: [PATCH v2] tools/mm: Use calloc and check the memory allocation failure
Posted by Andrew Morton 2 months ago
On Thu, 29 Aug 2024 02:21:44 -0700 Zhu Jun <zhujun2@cmss.chinamobile.com> wrote:

> Replace malloc with calloc and add null pointer check
> in case of allocation failure.
> 
> ...
>
> --- a/tools/mm/page_owner_sort.c
> +++ b/tools/mm/page_owner_sort.c
> @@ -368,9 +368,10 @@ 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)
> +		return NULL;

It seems rather pointless doing this when the caller aren't coded to
handle the NULL return.

And really, for these little userspace tools it's OK for us to just
assume that malloc() alway succeeds, isn't it?