[dpdk-dev] examples/netmap_compat: fix infinite loop

Message ID 1461322049-30416-1-git-send-email-michalx.kobylinski@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Michal Kobylinski April 22, 2016, 10:47 a.m. UTC
  Fix issue reported by Coverity.

Coverity ID 30701: Infinite loop: The loop does not have a normal
termination condition, so will continue until an abnormal condition
arises. In rte_netmap_poll: Infinite loop with unsatisfiable exit
condition.

Fixes: 06371afe394d ("examples/netmap_compat: import netmap compatibility example")

Signed-off-by: Michal Kobylinski <michalx.kobylinski@intel.com>
---
 examples/netmap_compat/lib/compat_netmap.c | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

John McNamara April 22, 2016, 11:51 a.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Michal Kobylinski
> Sent: Friday, April 22, 2016 11:47 AM
> To: Richardson, Bruce <bruce.richardson@intel.com>; dev@dpdk.org
> Cc: Kobylinski, MichalX <michalx.kobylinski@intel.com>
> Subject: [dpdk-dev] [PATCH] examples/netmap_compat: fix infinite loop
> 
> 
> +	if (timeout > 0) {
> +		ret = -1;
> +		return ret;
> +	}
> +

return -1; without the braces is probably okay in this case.
  

Patch

diff --git a/examples/netmap_compat/lib/compat_netmap.c b/examples/netmap_compat/lib/compat_netmap.c
index bf1b418..8cb5764 100644
--- a/examples/netmap_compat/lib/compat_netmap.c
+++ b/examples/netmap_compat/lib/compat_netmap.c
@@ -865,6 +865,11 @@  rte_netmap_poll(struct pollfd *fds, nfds_t nfds, int timeout)
 	uint32_t i, idx, port;
 	uint32_t want_rx, want_tx;
 
+	if (timeout > 0) {
+		ret = -1;
+		return ret;
+	}
+
 	ret = 0;
 	do {
 		for (i = 0; i < nfds; i++) {