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 |
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 --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; }
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(-)