Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Apr 2026 06:06:36 +0000
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Ryan Moeller <rmoeller.dev@gmail.com>
Subject:   git: 20cd1b475a1e - main - lib/libifconfig: Fix pointer-sign warnings
Message-ID:  <69e07c6c.3cb59.126f7498@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=20cd1b475a1ef9dfca30726999aa1b9a02d5bc39

commit 20cd1b475a1ef9dfca30726999aa1b9a02d5bc39
Author:     Ryan Moeller <rmoeller.dev@gmail.com>
AuthorDate: 2025-09-18 15:04:35 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2026-04-16 06:05:22 +0000

    lib/libifconfig: Fix pointer-sign warnings
    
    Fix all pointer-sign warnings generated when compiling libifconfig.
    
    One of these warnings comes from the misuse of snl_add_msg_attr_string
    for a byte array.  Though userland treats carpr_key as a string, it is
    actually an array of bytes.  Handle it as such in libifconfig.
    
    While here, fix a small consistency nit in ifconfig_sfp_get_sfp_dump.
    
    Signed-off-by: Ryan Moeller <rmoeller.dev@gmail.com>
    Reviewed by: imp, zlei
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1850
---
 lib/libifconfig/libifconfig_carp.c |  5 +++--
 lib/libifconfig/libifconfig_sfp.c  | 10 +++++-----
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/lib/libifconfig/libifconfig_carp.c b/lib/libifconfig/libifconfig_carp.c
index 59faa8def496..8599470cd3f9 100644
--- a/lib/libifconfig/libifconfig_carp.c
+++ b/lib/libifconfig/libifconfig_carp.c
@@ -53,7 +53,7 @@ static struct snl_attr_parser ap_carp_get[] = {
 	{ .type = CARP_NL_STATE, .off = _OUT(carpr_state), .cb = snl_attr_get_uint32 },
 	{ .type = CARP_NL_ADVBASE, .off = _OUT(carpr_advbase), .cb = snl_attr_get_int32 },
 	{ .type = CARP_NL_ADVSKEW, .off = _OUT(carpr_advskew), .cb = snl_attr_get_int32 },
-	{ .type = CARP_NL_KEY, .off = _OUT(carpr_key), .cb = snl_attr_copy_string, .arg_u32 = CARP_KEY_LEN },
+	{ .type = CARP_NL_KEY, .off = _OUT(carpr_key), .cb = snl_attr_get_bytes, .arg_u32 = CARP_KEY_LEN },
 	{ .type = CARP_NL_ADDR, .off = _OUT(carpr_addr), .cb = snl_attr_get_in_addr },
 	{ .type = CARP_NL_ADDR6, .off = _OUT(carpr_addr6), .cb = snl_attr_get_in6_addr },
 	{ .type = CARP_NL_VERSION, .off = _OUT(carpr_version), .cb = snl_attr_get_uint8 },
@@ -177,7 +177,8 @@ ifconfig_carp_set_info(ifconfig_handle_t *h, const char *name,
 	    &carpr->carpr_addr);
 	snl_add_msg_attr(&nw, CARP_NL_ADDR6, sizeof(carpr->carpr_addr6),
 	    &carpr->carpr_addr6);
-	snl_add_msg_attr_string(&nw, CARP_NL_KEY, carpr->carpr_key);
+	snl_add_msg_attr(&nw, CARP_NL_KEY, sizeof(carpr->carpr_key),
+	    carpr->carpr_key);
 	snl_add_msg_attr_u8(&nw, CARP_NL_VERSION, carpr->carpr_version);
 	snl_add_msg_attr_u8(&nw, CARP_NL_VRRP_PRIORITY, carpr->carpr_vrrp_prio);
 	snl_add_msg_attr_u16(&nw, CARP_NL_VRRP_ADV_INTER, carpr->carpr_vrrp_adv_inter);
diff --git a/lib/libifconfig/libifconfig_sfp.c b/lib/libifconfig/libifconfig_sfp.c
index 8deccda5ff76..a2cddf89a13a 100644
--- a/lib/libifconfig/libifconfig_sfp.c
+++ b/lib/libifconfig/libifconfig_sfp.c
@@ -298,7 +298,7 @@ ifconfig_sfp_get_sfp_info(ifconfig_handle_t *h,
     const char *name, struct ifconfig_sfp_info *sfp)
 {
 	struct i2c_info ii;
-	char buf[8];
+	uint8_t buf[8];
 
 	memset(sfp, 0, sizeof(*sfp));
 
@@ -365,7 +365,7 @@ ifconfig_sfp_channel_count(const struct ifconfig_sfp_info *sfp)
 static void
 get_sff_string(struct i2c_info *ii, uint8_t addr, uint8_t off, char *dst)
 {
-	read_i2c(ii, addr, off, SFF_VENDOR_STRING_SIZE, dst);
+	read_i2c(ii, addr, off, SFF_VENDOR_STRING_SIZE, (uint8_t *)dst);
 	dst += SFF_VENDOR_STRING_SIZE;
 	do { *dst-- = '\0'; } while (*dst == 0x20);
 }
@@ -373,7 +373,7 @@ get_sff_string(struct i2c_info *ii, uint8_t addr, uint8_t off, char *dst)
 static void
 get_sff_date(struct i2c_info *ii, uint8_t addr, uint8_t off, char *dst)
 {
-	char buf[SFF_VENDOR_DATE_SIZE];
+	uint8_t buf[SFF_VENDOR_DATE_SIZE];
 
 	read_i2c(ii, addr, off, SFF_VENDOR_DATE_SIZE, buf);
 	sprintf(dst, "20%c%c-%c%c-%c%c", buf[0], buf[1], buf[2], buf[3],
@@ -532,7 +532,7 @@ get_sfp_status(struct i2c_info *ii, struct ifconfig_sfp_status *ss)
 	uint8_t diag_type, flags;
 
 	/* Read diagnostic monitoring type */
-	read_i2c(ii, SFF_8472_BASE, SFF_8472_DIAG_TYPE, 1, (caddr_t)&diag_type);
+	read_i2c(ii, SFF_8472_BASE, SFF_8472_DIAG_TYPE, 1, &diag_type);
 	if (ii->error != 0)
 		return (-1);
 
@@ -773,7 +773,7 @@ ifconfig_sfp_get_sfp_dump(ifconfig_handle_t *h, const char *name,
 	struct i2c_info ii;
 	uint8_t *buf = dump->data;
 
-	memset(dump->data, 0, sizeof(dump->data));
+	memset(buf, 0, sizeof(dump->data));
 
 	if (i2c_info_init(&ii, h, name) != 0)
 		return (-1);


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69e07c6c.3cb59.126f7498>