[dpdk-dev] [PATCH 3/5] examples/netmap: fix overflow in ioctl operation

Olivier Matz olivier.matz at 6wind.com
Wed Dec 17 13:55:23 CET 2014


Compiling the netmap example with clang-3.5 triggered the following
warning:

  compat_netmap.c:783:11: error: overflow converting case value to
    switch condition type (3225184658 to 18446744072639768978)
    [-Werror,-Wswitch]
              case NIOCREGIF:
                 ^
Indeed, an ioctl value should be an unsigned 32 bits, not an int.

Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 examples/netmap_compat/lib/compat_netmap.c | 2 +-
 examples/netmap_compat/lib/compat_netmap.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/examples/netmap_compat/lib/compat_netmap.c b/examples/netmap_compat/lib/compat_netmap.c
index 6a4737a..1d86ef0 100644
--- a/examples/netmap_compat/lib/compat_netmap.c
+++ b/examples/netmap_compat/lib/compat_netmap.c
@@ -765,7 +765,7 @@ rte_netmap_close(__rte_unused int fd)
 	return (rc);
 }
 
-int rte_netmap_ioctl(int fd, int op, void *param)
+int rte_netmap_ioctl(int fd, uint32_t op, void *param)
 {
 	int ret;
 
diff --git a/examples/netmap_compat/lib/compat_netmap.h b/examples/netmap_compat/lib/compat_netmap.h
index f8a7812..3dc7a2f 100644
--- a/examples/netmap_compat/lib/compat_netmap.h
+++ b/examples/netmap_compat/lib/compat_netmap.h
@@ -71,7 +71,7 @@ int rte_netmap_init_port(uint8_t portid,
 	const struct rte_netmap_port_conf *conf);
 
 int rte_netmap_close(int fd);
-int rte_netmap_ioctl(int fd, int op, void *param);
+int rte_netmap_ioctl(int fd, uint32_t op, void *param);
 int rte_netmap_open(const char *pathname, int flags);
 int rte_netmap_poll(struct pollfd *fds, nfds_t nfds, int timeout);
 void *rte_netmap_mmap(void *addr, size_t length, int prot, int flags, int fd,
-- 
2.1.3



More information about the dev mailing list