Message ID | 20201102092339.2034297-1-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | [PATCH-for-5.2,v2] tools/virtiofsd: Check vu_init() return value (CID 1435958) | expand |
* Philippe Mathieu-Daudé (philmd@redhat.com) wrote: > Since commit 6f5fd837889, vu_init() can fail if malloc() returns NULL. > > This fixes the following Coverity warning: > > CID 1435958 (#1 of 1): Unchecked return value (CHECKED_RETURN) > > Fixes: 6f5fd837889 ("libvhost-user: support many virtqueues") > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Queued. > --- > v2: Add fuse_log() Thanks. > --- > tools/virtiofsd/fuse_virtio.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c > index 324936948d3..83ba07c6cd8 100644 > --- a/tools/virtiofsd/fuse_virtio.c > +++ b/tools/virtiofsd/fuse_virtio.c > @@ -1013,8 +1013,11 @@ int virtio_session_mount(struct fuse_session *se) > se->vu_socketfd = data_sock; > se->virtio_dev->se = se; > pthread_rwlock_init(&se->virtio_dev->vu_dispatch_rwlock, NULL); > - vu_init(&se->virtio_dev->dev, 2, se->vu_socketfd, fv_panic, NULL, > - fv_set_watch, fv_remove_watch, &fv_iface); > + if (!vu_init(&se->virtio_dev->dev, 2, se->vu_socketfd, fv_panic, NULL, > + fv_set_watch, fv_remove_watch, &fv_iface)) { > + fuse_log(FUSE_LOG_ERR, "%s: vu_init failed\n", __func__); > + return -1; > + } > > return 0; > } > -- > 2.26.2 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 324936948d3..83ba07c6cd8 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -1013,8 +1013,11 @@ int virtio_session_mount(struct fuse_session *se) se->vu_socketfd = data_sock; se->virtio_dev->se = se; pthread_rwlock_init(&se->virtio_dev->vu_dispatch_rwlock, NULL); - vu_init(&se->virtio_dev->dev, 2, se->vu_socketfd, fv_panic, NULL, - fv_set_watch, fv_remove_watch, &fv_iface); + if (!vu_init(&se->virtio_dev->dev, 2, se->vu_socketfd, fv_panic, NULL, + fv_set_watch, fv_remove_watch, &fv_iface)) { + fuse_log(FUSE_LOG_ERR, "%s: vu_init failed\n", __func__); + return -1; + } return 0; }