This fixes warnings like this:
warning: comparison of integer expressions of different signedness: 'int' and 
'long unsigned int' [-Wsign-compare]

Mostly this was an int compared to a size_t returned by ARRAY_SIZE().
The easiest fix is to count on the size_t type.

The ifindex is sometimes an unsigned int and sometimes a signed int in
the kernel interfaces. I think it normally fits into an unsigned 16 bit
value, so this should be fine. Do the one comparison where the
compiler complains as a long.

Casting the result of sizeof() to int should be safe. These values are
never out of range of int.

Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de>
---
 bonding.c      |  2 +-
 handler.c      |  5 +++--
 interface-ip.c |  2 +-
 main.c         |  4 ++--
 system-linux.c | 21 ++++++++++++---------
 ubus.c         |  4 ++--
 vlan.c         |  4 ++--
 wireless.c     |  2 +-
 8 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/bonding.c b/bonding.c
index 457fe51..f4005de 100644
--- a/bonding.c
+++ b/bonding.c
@@ -396,7 +396,7 @@ bonding_apply_settings(struct bonding_device *bdev, struct 
blob_attr **tb)
 
        if ((cur = tb[BOND_ATTR_POLICY]) != NULL) {
                const char *policy = blobmsg_get_string(cur);
-               int i;
+               size_t i;
 
                for (i = 0; i < ARRAY_SIZE(bonding_policy_str); i++) {
                        if (strcmp(policy, bonding_policy_str[i]) != 0)
diff --git a/handler.c b/handler.c
index 04bdbee..78fc9a0 100644
--- a/handler.c
+++ b/handler.c
@@ -229,7 +229,8 @@ netifd_parse_extdev_handler(const char *path_to_file, 
create_extdev_handler_cb c
 void netifd_init_script_handlers(int dir_fd, script_dump_cb cb)
 {
        glob_t g;
-       int i, prev_fd;
+       int prev_fd;
+       size_t i;
 
        prev_fd = netifd_dir_push(dir_fd);
        if (glob("./*.sh", 0, NULL, &g)) {
@@ -252,7 +253,7 @@ netifd_init_extdev_handlers(int dir_fd, 
create_extdev_handler_cb cb)
 
        prev_fd = netifd_dir_push(dir_fd);
        glob("*.json", 0, NULL, &g);
-       for (int i = 0; i < g.gl_pathc; i++)
+       for (size_t i = 0; i < g.gl_pathc; i++)
                netifd_parse_extdev_handler(g.gl_pathv[i], cb);
        netifd_dir_pop(prev_fd);
 }
diff --git a/interface-ip.c b/interface-ip.c
index ab4a5cf..7359db2 100644
--- a/interface-ip.c
+++ b/interface-ip.c
@@ -99,7 +99,7 @@ static struct uloop_timeout valid_until_timeout;
 static void
 clear_if_addr(union if_addr *a, int mask)
 {
-       int m_bytes = (mask + 7) / 8;
+       size_t m_bytes = (mask + 7) / 8;
        uint8_t m_clear = (1 << (m_bytes * 8 - mask)) - 1;
        uint8_t *p = (uint8_t *) a;
 
diff --git a/main.c b/main.c
index 4c1c855..874dc8b 100644
--- a/main.c
+++ b/main.c
@@ -303,8 +303,8 @@ int main(int argc, char **argv)
                        break;
                case 'l':
                        log_level = atoi(optarg);
-                       if (log_level >= ARRAY_SIZE(log_class))
-                               log_level = ARRAY_SIZE(log_class) - 1;
+                       if (log_level >= (int)ARRAY_SIZE(log_class))
+                               log_level = (int)ARRAY_SIZE(log_class) - 1;
                        break;
 #ifndef DUMMY_MODE
                case 'S':
diff --git a/system-linux.c b/system-linux.c
index 45a9efb..d13a561 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -1154,7 +1154,7 @@ static bool check_ifaddr(struct nlmsghdr *hdr, int 
ifindex)
 {
        struct ifaddrmsg *ifa = NLMSG_DATA(hdr);
 
-       return ifa->ifa_index == ifindex;
+       return (long)ifa->ifa_index == ifindex;
 }
 
 static bool check_route(struct nlmsghdr *hdr, int ifindex)
@@ -1438,7 +1438,8 @@ int system_macvlan_add(struct device *macvlan, struct 
device *dev, struct macvla
 {
        struct nl_msg *msg;
        struct nlattr *linkinfo, *data;
-       int i, rv;
+       size_t i;
+       int rv;
        static const struct {
                const char *name;
                enum macvlan_mode val;
@@ -1700,7 +1701,7 @@ system_set_ethtool_settings(struct device *dev, struct 
device_settings *s)
                .ifr_data = (caddr_t)&ecmd,
        };
        static const struct {
-               int speed;
+               unsigned int speed;
                uint8_t bit_half;
                uint8_t bit_full;
        } speed_mask[] = {
@@ -1709,7 +1710,7 @@ system_set_ethtool_settings(struct device *dev, struct 
device_settings *s)
                { 1000, ETHTOOL_LINK_MODE_1000baseT_Half_BIT, 
ETHTOOL_LINK_MODE_1000baseT_Full_BIT },
        };
        uint32_t adv;
-       int i;
+       size_t i;
 
        strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1);
 
@@ -2355,7 +2356,7 @@ static const struct {
 
 static void system_add_link_modes(struct blob_buf *b, __u32 mask)
 {
-       int i;
+       size_t i;
        for (i = 0; i < ARRAY_SIZE(ethtool_link_modes); i++) {
                if (mask & ethtool_link_modes[i].mask)
                        blobmsg_add_string(b, NULL, ethtool_link_modes[i].name);
@@ -2373,7 +2374,7 @@ system_if_force_external(const char *ifname)
 static const char *
 system_netdevtype_name(unsigned short dev_type)
 {
-       unsigned int i;
+       size_t i;
 
        for (i = 0; i < ARRAY_SIZE(netdev_types); i++) {
                if (netdev_types[i].id == dev_type)
@@ -2457,7 +2458,8 @@ ethtool_feature_index(const char *ifname, const char 
*keyname)
 {
        struct ethtool_gstrings *feature_names;
        struct ifreq ifr = { 0 };
-       int32_t n_features, i;
+       int32_t n_features;
+       uint32_t i;
 
        n_features = ethtool_feature_count(ifname);
 
@@ -2592,7 +2594,7 @@ system_if_dump_stats(struct device *dev, struct blob_buf 
*b)
                "rx_fifo_errors", "tx_carrier_errors",
        };
        int stats_dir;
-       int i;
+       size_t i;
        uint64_t val = 0;
 
        stats_dir = open(dev_sysfs_path(dev->ifname, "statistics"), 
O_DIRECTORY);
@@ -2838,7 +2840,8 @@ int system_del_route(struct device *dev, struct 
device_route *route)
 int system_flush_routes(void)
 {
        const char *names[] = { "ipv4", "ipv6" };
-       int fd, i;
+       size_t i;
+       int fd;
 
        for (i = 0; i < ARRAY_SIZE(names); i++) {
                snprintf(dev_buf, sizeof(dev_buf), "%s/sys/net/%s/route/flush", 
proc_path, names[i]);
diff --git a/ubus.c b/ubus.c
index 7f4821d..4d05786 100644
--- a/ubus.c
+++ b/ubus.c
@@ -1132,7 +1132,7 @@ netifd_handle_iface(struct ubus_context *ctx, struct 
ubus_object *obj,
 {
        struct interface *iface;
        struct blob_attr *tb;
-       int i;
+       size_t i;
 
        blobmsg_parse(&iface_policy, 1, &tb, blob_data(msg), blob_len(msg));
        if (!tb)
@@ -1158,7 +1158,7 @@ netifd_handle_iface(struct ubus_context *ctx, struct 
ubus_object *obj,
 static void netifd_add_iface_object(void)
 {
        struct ubus_method *methods;
-       int i;
+       size_t i;
 
        methods = calloc(1, sizeof(iface_object_methods));
        if (!methods)
diff --git a/vlan.c b/vlan.c
index 3d444a9..4d32b60 100644
--- a/vlan.c
+++ b/vlan.c
@@ -143,7 +143,7 @@ static void vlan_dev_cb(struct device_user *dep, enum 
device_event ev)
                vlan_hotplug_check(vldev, dep->dev);
                vldev->dev.hidden = dep->dev->hidden;
                if (snprintf(name, sizeof(name), "%s.%d", dep->dev->ifname,
-                            vldev->id) >= sizeof(name) - 1 ||
+                            vldev->id) >= (int)sizeof(name) - 1 ||
                    device_set_ifname(&vldev->dev, name))
                        free_vlan_if(&vldev->dev);
                break;
@@ -203,7 +203,7 @@ static struct device *get_vlan_device(struct device *dev, 
char *id_str, bool cre
        if (!create)
                return NULL;
 
-       if (snprintf(name, sizeof(name), "%s.%d", dev->ifname, id) >= 
sizeof(name) - 1)
+       if (snprintf(name, sizeof(name), "%s.%d", dev->ifname, id) >= 
(int)sizeof(name) - 1)
                return NULL;
 
        D(DEVICE, "Create vlan device '%s'\n", name);
diff --git a/wireless.c b/wireless.c
index 705d6dd..1f54bfb 100644
--- a/wireless.c
+++ b/wireless.c
@@ -1542,7 +1542,7 @@ void wireless_device_hotplug_event(const char *name, bool 
add)
        struct wireless_interface *vif;
        struct wireless_device *wdev;
        const char *s;
-       int len;
+       size_t len;
 
        s = strstr(name, ".sta");
        if (s) {
-- 
2.39.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to