From: Thomas Weißschuh Date: Sun, 8 Jan 2023 03:09:37 +0000 (+0000) Subject: libblkid: topology/ioctl: fix uint64_t handling on 32bit systems X-Git-Tag: v2.39-rc1~183 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=305cb55ba4eb5116154b10de1837d6fe0620111d;p=thirdparty%2Futil-linux.git libblkid: topology/ioctl: fix uint64_t handling on 32bit systems --- diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c index a7045055fc..3560a2fb53 100644 --- a/libblkid/src/topology/ioctl.c +++ b/libblkid/src/topology/ioctl.c @@ -28,13 +28,14 @@ static const struct topology_val { /* functions to set probing result */ int (*set_ulong)(blkid_probe, unsigned long); int (*set_int)(blkid_probe, int); + int (*set_u64)(blkid_probe, uint64_t); } topology_vals[] = { { BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset }, { BLKIOMIN, blkid_topology_set_minimum_io_size }, { BLKIOOPT, blkid_topology_set_optimal_io_size }, { BLKPBSZGET, blkid_topology_set_physical_sector_size }, - { BLKGETDISKSEQ, blkid_topology_set_diskseq }, + { BLKGETDISKSEQ, .set_u64 = blkid_topology_set_diskseq }, /* we read BLKSSZGET in topology.c */ }; @@ -49,6 +50,7 @@ static int probe_ioctl_tp(blkid_probe pr, union { unsigned long ul; int i; + uint64_t u64; } data; if (ioctl(pr->fd, val->ioc, &data) == -1) @@ -56,8 +58,11 @@ static int probe_ioctl_tp(blkid_probe pr, if (val->set_int) rc = val->set_int(pr, data.i); - else + else if (val->set_ulong) rc = val->set_ulong(pr, data.ul); + else + rc = val->set_u64(pr, data.u64); + if (rc) goto err; }