The branch stable/13 has been updated by jhb:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=9084eb8678d3c76f10dd4c7db86897e3f04a222b

commit 9084eb8678d3c76f10dd4c7db86897e3f04a222b
Author:     Tony Hutter <[email protected]>
AuthorDate: 2024-04-29 18:31:50 +0000
Commit:     John Baldwin <[email protected]>
CommitDate: 2024-11-30 19:18:32 +0000

    openzfs: Fix GCC 14 warnings
    
    This is a direct cherry-pick to stable/13 of OpenZFS commit
    4840f023afae7c4932c903cf3a436c02c6704e20:
    
        GCC: Fixes for gcc 14 on Fedora 40
    
        - Workaround dangling pointer in uu_list.c (#16124)
        - Fix calloc() transposed arguments in zpool_vdev_os.c
        - Make some temp variables unsigned to prevent triggering a
          '-Werror=alloc-size-larger-than' error.
    
        Reviewed-by: Brian Behlendorf <[email protected]>
        Signed-off-by: Tony Hutter <[email protected]>
        Closes #16124
        Closes #16125
---
 sys/contrib/openzfs/cmd/zpool/os/linux/zpool_vdev_os.c |  2 +-
 sys/contrib/openzfs/lib/libuutil/uu_list.c             | 14 ++++++++++----
 sys/contrib/openzfs/module/zfs/vdev_raidz.c            |  5 +++--
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/sys/contrib/openzfs/cmd/zpool/os/linux/zpool_vdev_os.c 
b/sys/contrib/openzfs/cmd/zpool/os/linux/zpool_vdev_os.c
index cfaeef56a20e..42ccd39919bf 100644
--- a/sys/contrib/openzfs/cmd/zpool/os/linux/zpool_vdev_os.c
+++ b/sys/contrib/openzfs/cmd/zpool/os/linux/zpool_vdev_os.c
@@ -432,7 +432,7 @@ static char *zpool_sysfs_gets(char *path)
                return (NULL);
        }
 
-       buf = calloc(sizeof (*buf), statbuf.st_size + 1);
+       buf = calloc(statbuf.st_size + 1, sizeof (*buf));
        if (buf == NULL) {
                close(fd);
                return (NULL);
diff --git a/sys/contrib/openzfs/lib/libuutil/uu_list.c 
b/sys/contrib/openzfs/lib/libuutil/uu_list.c
index c3a447d01de3..0ad5fff6fd4b 100644
--- a/sys/contrib/openzfs/lib/libuutil/uu_list.c
+++ b/sys/contrib/openzfs/lib/libuutil/uu_list.c
@@ -507,14 +507,20 @@ uu_list_walk(uu_list_t *lp, uu_walk_fn_t *func, void 
*private, uint32_t flags)
        }
 
        if (lp->ul_debug || robust) {
-               uu_list_walk_t my_walk;
+               uu_list_walk_t *my_walk;
                void *e;
 
-               list_walk_init(&my_walk, lp, flags);
+               my_walk = uu_zalloc(sizeof (*my_walk));
+               if (my_walk == NULL)
+                       return (-1);
+
+               list_walk_init(my_walk, lp, flags);
                while (status == UU_WALK_NEXT &&
-                   (e = uu_list_walk_next(&my_walk)) != NULL)
+                   (e = uu_list_walk_next(my_walk)) != NULL)
                        status = (*func)(e, private);
-               list_walk_fini(&my_walk);
+               list_walk_fini(my_walk);
+
+               uu_free(my_walk);
        } else {
                if (!reverse) {
                        for (np = lp->ul_null_node.uln_next;
diff --git a/sys/contrib/openzfs/module/zfs/vdev_raidz.c 
b/sys/contrib/openzfs/module/zfs/vdev_raidz.c
index 5c25007f17b9..ecdaea0bcc51 100644
--- a/sys/contrib/openzfs/module/zfs/vdev_raidz.c
+++ b/sys/contrib/openzfs/module/zfs/vdev_raidz.c
@@ -1182,8 +1182,9 @@ vdev_raidz_matrix_reconstruct(raidz_row_t *rr, int n, int 
nmissing,
 static void
 vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
 {
-       int n, i, c, t, tt;
-       int nmissing_rows;
+       int i, c, t, tt;
+       unsigned int n;
+       unsigned int nmissing_rows;
        int missing_rows[VDEV_RAIDZ_MAXPARITY];
        int parity_map[VDEV_RAIDZ_MAXPARITY];
        uint8_t *p, *pp;

Reply via email to