mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-28 03:49:38 +03:00
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 <behlendorf1@llnl.gov> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Closes #16124 Closes #16125
This commit is contained in:
parent
71216b91d2
commit
ef3fea63eb
@ -438,7 +438,7 @@ static char *zpool_sysfs_gets(char *path)
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
buf = calloc(sizeof (*buf), statbuf.st_size + 1);
|
buf = calloc(statbuf.st_size + 1, sizeof (*buf));
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
close(fd);
|
close(fd);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
@ -505,14 +505,20 @@ uu_list_walk(uu_list_t *lp, uu_walk_fn_t *func, void *private, uint32_t flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (lp->ul_debug || robust) {
|
if (lp->ul_debug || robust) {
|
||||||
uu_list_walk_t my_walk;
|
uu_list_walk_t *my_walk;
|
||||||
void *e;
|
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 &&
|
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);
|
status = (*func)(e, private);
|
||||||
list_walk_fini(&my_walk);
|
list_walk_fini(my_walk);
|
||||||
|
|
||||||
|
uu_free(my_walk);
|
||||||
} else {
|
} else {
|
||||||
if (!reverse) {
|
if (!reverse) {
|
||||||
for (np = lp->ul_null_node.uln_next;
|
for (np = lp->ul_null_node.uln_next;
|
||||||
|
@ -1283,8 +1283,9 @@ vdev_raidz_matrix_reconstruct(raidz_row_t *rr, int n, int nmissing,
|
|||||||
static void
|
static void
|
||||||
vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
vdev_raidz_reconstruct_general(raidz_row_t *rr, int *tgts, int ntgts)
|
||||||
{
|
{
|
||||||
int n, i, c, t, tt;
|
int i, c, t, tt;
|
||||||
int nmissing_rows;
|
unsigned int n;
|
||||||
|
unsigned int nmissing_rows;
|
||||||
int missing_rows[VDEV_RAIDZ_MAXPARITY];
|
int missing_rows[VDEV_RAIDZ_MAXPARITY];
|
||||||
int parity_map[VDEV_RAIDZ_MAXPARITY];
|
int parity_map[VDEV_RAIDZ_MAXPARITY];
|
||||||
uint8_t *p, *pp;
|
uint8_t *p, *pp;
|
||||||
|
Loading…
Reference in New Issue
Block a user