From patchwork Sun Feb 19 15:20:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hauke Mehrtens X-Patchwork-Id: 1744705 X-Patchwork-Delegate: hauke@hauke-m.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=0DNooz4k; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=hauke-m.de header.i=@hauke-m.de header.a=rsa-sha256 header.s=MBO0001 header.b=1f5Ac/Mp; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4PKTq12s0Fz23j7 for ; Mon, 20 Feb 2023 02:23:57 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3ltr9q1xRvCGnP7hcPheykSwCErxN5ordpLUtPGU4C8=; b=0DNooz4kdYMjpg 0JZMebJkmfWKx3sj+MRfdqNQVAOw9xA95RtEr9YNdK+ftX/8j0SZ2guPUFLp/prR9KyC4EFpLmmV2 1AGF+DAEdIBXeHQHxc/sty9kqA+reOGFyrEWbcrlTvEvl1vn2HNbcciGbHWVMXfNey94UB8A21a8Z UFb58/w2tuHnTaK4SfGxX6Vy8ek3jQYhFqJV8+Y1Bo0CaoeiTh+zVyjOAsSIuwfeidLdvtWF9KZNJ j8ZknaCKxvGEABplwj6TwHq3ETAawnSzH+sM8gSLSK99wJhUeBOp/6CfbNlwfTLtEqYLzVyRbMWST Clqo+1vTaet/851HiOBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pTlW6-001mmZ-4w; Sun, 19 Feb 2023 15:22:18 +0000 Received: from mout-p-102.mailbox.org ([80.241.56.152]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pTlUm-001mX7-Pv for openwrt-devel@lists.openwrt.org; Sun, 19 Feb 2023 15:20:59 +0000 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4PKTlK672kz9sTq; Sun, 19 Feb 2023 16:20:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hauke-m.de; s=MBO0001; t=1676820045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PA3ePpPvfRAm8OxzaW3UYnblJf4lvOPXBHS9FfxNAJ8=; b=1f5Ac/MpKwwnmd1lSO7zN/dZQj8PQZ0IsL6eiN9uMjHh0SVFKGrsXsHU5Pf1smeE/0bBBD ylkbDkMiWFOwRMbBwejn0K1XJy6RsIzpw8PTcD+lSJKwsBnF2n5X9JpQRYwLG1p32iezuI TIkeLVeSGUF0lA3mAqOGeQyYSGUj3XQVQQ+A1gQoLd8XVxQVGDgGCf8JMIfaxbmvVDl+Aw JK4vstHEK2pWoHeSsJIHD9U+I1+iZzi15ecMYSDbNbccylYsaeMjepH08Sc5mGA0fXkF+d +CpgqYfSjJzgHXTT6RTdZkEeRxsJQ4i0bTS5f5R5FwmZHxmTRZWLqhMWGl5vcA== From: Hauke Mehrtens To: openwrt-devel@lists.openwrt.org Cc: Hauke Mehrtens Subject: [PATCH netifd 2/5] netifd: Fix multiple -Wsign-compare warnings Date: Sun, 19 Feb 2023 16:20:24 +0100 Message-Id: <20230219152027.3417324-3-hauke@hauke-m.de> In-Reply-To: <20230219152027.3417324-1-hauke@hauke-m.de> References: <20230219152027.3417324-1-hauke@hauke-m.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230219_072057_062619_C05640CE X-CRM114-Status: GOOD ( 19.91 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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. Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [80.241.56.152 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org 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 --- 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) {