[Qemu-devel] [PATCH] 9pfs: fail local_statfs() earlier

Greg Kurz posted 1 patch 7 years, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/148856422757.9841.6298006998523421948.stgit@bahia.lan
Test checkpatch passed
Test docker passed
hw/9pfs/9p-local.c |    3 +++
1 file changed, 3 insertions(+)
[Qemu-devel] [PATCH] 9pfs: fail local_statfs() earlier
Posted by Greg Kurz 7 years, 1 month ago
If we cannot open the given path, we can return right away instead of
passing -1 to fstatfs() and close(). This will make Coverity happy.

(Coverity issue CID1371729)

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/9pfs/9p-local.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
index fe930300445a..ea9a1ced0394 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
@@ -1053,6 +1053,9 @@ static int local_statfs(FsContext *s, V9fsPath *fs_path, struct statfs *stbuf)
     int fd, ret;
 
     fd = local_open_nofollow(s, fs_path->data, O_RDONLY, 0);
+    if (fd == -1) {
+        return -1;
+    }
     ret = fstatfs(fd, stbuf);
     close_preserve_errno(fd);
     return ret;


Re: [Qemu-devel] [PATCH] 9pfs: fail local_statfs() earlier
Posted by Daniel P. Berrange 7 years, 1 month ago
On Fri, Mar 03, 2017 at 07:03:47PM +0100, Greg Kurz wrote:
> If we cannot open the given path, we can return right away instead of
> passing -1 to fstatfs() and close(). This will make Coverity happy.
> 
> (Coverity issue CID1371729)
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  hw/9pfs/9p-local.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index fe930300445a..ea9a1ced0394 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -1053,6 +1053,9 @@ static int local_statfs(FsContext *s, V9fsPath *fs_path, struct statfs *stbuf)
>      int fd, ret;
>  
>      fd = local_open_nofollow(s, fs_path->data, O_RDONLY, 0);
> +    if (fd == -1) {
> +        return -1;
> +    }
>      ret = fstatfs(fd, stbuf);
>      close_preserve_errno(fd);
>      return ret;

Reviewed-by: Daniel P. berrange <berrange@redhat.com>

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

Re: [Qemu-devel] [PATCH] 9pfs: fail local_statfs() earlier
Posted by Eric Blake 7 years, 1 month ago
On 03/03/2017 12:03 PM, Greg Kurz wrote:
> If we cannot open the given path, we can return right away instead of
> passing -1 to fstatfs() and close(). This will make Coverity happy.
> 
> (Coverity issue CID1371729)
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>
> ---
>  hw/9pfs/9p-local.c |    3 +++
>  1 file changed, 3 insertions(+)

No difference in end-user observable behavior, but arguably nicer (and
always more efficient to avoid unneeded syscalls).

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Re: [Qemu-devel] [PATCH] 9pfs: fail local_statfs() earlier
Posted by Philippe Mathieu-Daudé 7 years, 1 month ago
On 03/03/2017 03:03 PM, Greg Kurz wrote:
> If we cannot open the given path, we can return right away instead of
> passing -1 to fstatfs() and close(). This will make Coverity happy.
>
> (Coverity issue CID1371729)
>
> Signed-off-by: Greg Kurz <groug@kaod.org>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  hw/9pfs/9p-local.c |    3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
> index fe930300445a..ea9a1ced0394 100644
> --- a/hw/9pfs/9p-local.c
> +++ b/hw/9pfs/9p-local.c
> @@ -1053,6 +1053,9 @@ static int local_statfs(FsContext *s, V9fsPath *fs_path, struct statfs *stbuf)
>      int fd, ret;
>
>      fd = local_open_nofollow(s, fs_path->data, O_RDONLY, 0);
> +    if (fd == -1) {
> +        return -1;
> +    }
>      ret = fstatfs(fd, stbuf);
>      close_preserve_errno(fd);
>      return ret;
>
>