diff mbox series

[4/8] virtiofsd: Changed allocations of fuse_session to GLib's functions

Message ID 20210319132527.3118-5-ma.mandourr@gmail.com (mailing list archive)
State New, archived
Headers show
Series virtiofsd: Changed various allocations to GLib functions | expand

Commit Message

Mahmoud Abumandour March 19, 2021, 1:25 p.m. UTC
Replaced the allocation and deallocation of fuse_session structs
from calloc() and free() calls to g_new0() and g_free().

Removed the NULL-check and used g_new0() mainly because fuse_session
creation is critical and an exit will occur anyway if fuse_session
allocation failed.

Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
---
 tools/virtiofsd/fuse_lowlevel.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

Stefan Hajnoczi March 23, 2021, 2:08 p.m. UTC | #1
On Fri, Mar 19, 2021 at 03:25:23PM +0200, Mahmoud Mandour wrote:
> Replaced the allocation and deallocation of fuse_session structs
> from calloc() and free() calls to g_new0() and g_free().
> 
> Removed the NULL-check and used g_new0() mainly because fuse_session
> creation is critical and an exit will occur anyway if fuse_session
> allocation failed.
> 
> Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com>
> ---
>  tools/virtiofsd/fuse_lowlevel.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
> index 45527ff703..b0e9ef29a7 100644
> --- a/tools/virtiofsd/fuse_lowlevel.c
> +++ b/tools/virtiofsd/fuse_lowlevel.c
> @@ -2467,7 +2467,7 @@ void fuse_session_destroy(struct fuse_session *se)
>      free(se->vu_socket_path);
>      se->vu_socket_path = NULL;
>  
> -    free(se);
> +    g_free(se);
>  }
>  
>  
> @@ -2490,11 +2490,7 @@ struct fuse_session *fuse_session_new(struct fuse_args *args,
>          return NULL;
>      }
>  
> -    se = (struct fuse_session *)calloc(1, sizeof(struct fuse_session));
> -    if (se == NULL) {
> -        fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");
> -        goto out1;
> -    }
> +    se = g_new0(struct fuse_session, 1);

Exiting with a virtiofsd log message is preferrable to aborting inside
g_new0(). abort(3) is good when you need a coredump to investigate the
problem. Here that doesn't seem appropriate. Please don't remove this
error handling code.

Stefan
diff mbox series

Patch

diff --git a/tools/virtiofsd/fuse_lowlevel.c b/tools/virtiofsd/fuse_lowlevel.c
index 45527ff703..b0e9ef29a7 100644
--- a/tools/virtiofsd/fuse_lowlevel.c
+++ b/tools/virtiofsd/fuse_lowlevel.c
@@ -2467,7 +2467,7 @@  void fuse_session_destroy(struct fuse_session *se)
     free(se->vu_socket_path);
     se->vu_socket_path = NULL;
 
-    free(se);
+    g_free(se);
 }
 
 
@@ -2490,11 +2490,7 @@  struct fuse_session *fuse_session_new(struct fuse_args *args,
         return NULL;
     }
 
-    se = (struct fuse_session *)calloc(1, sizeof(struct fuse_session));
-    if (se == NULL) {
-        fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate fuse object\n");
-        goto out1;
-    }
+    se = g_new0(struct fuse_session, 1);
     se->fd = -1;
     se->vu_listen_fd = -1;
     se->thread_pool_size = THREAD_POOL_SIZE;
@@ -2550,7 +2546,7 @@  struct fuse_session *fuse_session_new(struct fuse_args *args,
 out4:
     fuse_opt_free_args(args);
 out2:
-    free(se);
+    g_free(se);
 out1:
     return NULL;
 }