[dpdk-dev,v2] Report an error message if the flag O_NONBLOCK setting fails, then return from function.

Message ID 1508821844-37372-2-git-send-email-sebastianx.basierski@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

SebastianX Basierski Oct. 24, 2017, 5:10 a.m. UTC
  Coverity issue: 143439

Fixes: ef53b6030039 ("net/virtio-user: support LSC")
Cc: jianfeng.tan@intel.com
cc: stable@dpdk.org

Signed-off-by: SebastianX Basierski <sebastianx.basierski@intel.com>
---
 drivers/net/virtio/virtio_user_ethdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Comments

Jianfeng Tan Oct. 24, 2017, 7:26 a.m. UTC | #1
> -----Original Message-----
> From: Basierski, SebastianX
> Sent: Tuesday, October 24, 2017 1:11 PM
> To: yliu@fridaylinux.org
> Cc: dev@dpdk.org; Basierski, SebastianX; Tan, Jianfeng; stable@dpdk.org
> Subject: [PATCH v2] Report an error message if the flag O_NONBLOCK
> setting fails, then return from function.
> 
> Coverity issue: 143439
> 
> Fixes: ef53b6030039 ("net/virtio-user: support LSC")
> Cc: jianfeng.tan@intel.com
> cc: stable@dpdk.org
> 
> Signed-off-by: SebastianX Basierski <sebastianx.basierski@intel.com>

Except a nit below,
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>


> ---
>  drivers/net/virtio/virtio_user_ethdev.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio/virtio_user_ethdev.c
> b/drivers/net/virtio/virtio_user_ethdev.c
> index 57c964d..fe3a7be 100644
> --- a/drivers/net/virtio/virtio_user_ethdev.c
> +++ b/drivers/net/virtio/virtio_user_ethdev.c
> @@ -86,7 +86,11 @@ virtio_user_read_dev_config(struct virtio_hw *hw,
> size_t offset,
>  			int flags;
> 
>  			flags = fcntl(dev->vhostfd, F_GETFL);
> -			fcntl(dev->vhostfd, F_SETFL, flags | O_NONBLOCK);
> +			if (fcntl(dev->vhostfd, F_SETFL,
> +					flags | O_NONBLOCK) == -1){

There should be a space between ")" and "{".


> +				PMD_DRV_LOG(ERR, "error setting
> O_NONBLOCK flag");
> +				return;
> +			}
>  			r = recv(dev->vhostfd, buf, 128, MSG_PEEK);
>  			if (r == 0 || (r < 0 && errno != EAGAIN)) {
>  				dev->status &= (~VIRTIO_NET_S_LINK_UP);
> --
> 2.7.4
  

Patch

diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c
index 57c964d..fe3a7be 100644
--- a/drivers/net/virtio/virtio_user_ethdev.c
+++ b/drivers/net/virtio/virtio_user_ethdev.c
@@ -86,7 +86,11 @@  virtio_user_read_dev_config(struct virtio_hw *hw, size_t offset,
 			int flags;
 
 			flags = fcntl(dev->vhostfd, F_GETFL);
-			fcntl(dev->vhostfd, F_SETFL, flags | O_NONBLOCK);
+			if (fcntl(dev->vhostfd, F_SETFL,
+					flags | O_NONBLOCK) == -1){
+				PMD_DRV_LOG(ERR, "error setting O_NONBLOCK flag");
+				return;
+			}
 			r = recv(dev->vhostfd, buf, 128, MSG_PEEK);
 			if (r == 0 || (r < 0 && errno != EAGAIN)) {
 				dev->status &= (~VIRTIO_NET_S_LINK_UP);