diff mbox

pci-assign: Fix warning from coverity (argument cannot be negative)

Message ID 1426323477-949-1-git-send-email-sw@weilnetz.de
State Under Review
Headers show

Commit Message

Stefan Weil March 14, 2015, 8:57 a.m. UTC
Coverity warns because function monitor_fd_param can return a negative
value which might be passed to function read.

This won't happen because dev->config_fd will only be negative (-1)
when local_err is set.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---
 hw/i386/kvm/pci-assign.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Shannon Zhao March 14, 2015, 10:23 a.m. UTC | #1
On 2015/3/14 16:57, Stefan Weil wrote:
> Coverity warns because function monitor_fd_param can return a negative
> value which might be passed to function read.
> 
> This won't happen because dev->config_fd will only be negative (-1)
> when local_err is set.

Yes.

> 
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>  hw/i386/kvm/pci-assign.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c
> index 9db7c77..f3d145b 100644
> --- a/hw/i386/kvm/pci-assign.c
> +++ b/hw/i386/kvm/pci-assign.c
> @@ -554,7 +554,7 @@ static void get_real_device(AssignedDevice *pci_dev, Error **errp)
>      if (pci_dev->configfd_name && *pci_dev->configfd_name) {
>          dev->config_fd = monitor_fd_param(cur_mon, pci_dev->configfd_name,
>                                            &local_err);
> -        if (local_err) {
> +        if (dev->config_fd < 0) {
>              error_propagate(errp, local_err);
>              return;
>          }
> 

This fix the coverity warning of dev->config_id. I'm not sure that this may introduce
another warning of not checking local_err.
diff mbox

Patch

diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c
index 9db7c77..f3d145b 100644
--- a/hw/i386/kvm/pci-assign.c
+++ b/hw/i386/kvm/pci-assign.c
@@ -554,7 +554,7 @@  static void get_real_device(AssignedDevice *pci_dev, Error **errp)
     if (pci_dev->configfd_name && *pci_dev->configfd_name) {
         dev->config_fd = monitor_fd_param(cur_mon, pci_dev->configfd_name,
                                           &local_err);
-        if (local_err) {
+        if (dev->config_fd < 0) {
             error_propagate(errp, local_err);
             return;
         }