diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 19:22:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-14 19:22:59 +0000 |
commit | 95e98c113b1682d9f251295a37306c3bf0d5e8f7 (patch) | |
tree | cf4e326f631c14412d1145c09ff7bdbb60a7be8f /debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch | |
parent | Merging upstream version 2.40.1. (diff) | |
download | util-linux-95e98c113b1682d9f251295a37306c3bf0d5e8f7.tar.xz util-linux-95e98c113b1682d9f251295a37306c3bf0d5e8f7.zip |
Adding debian version 2.40.1-1.debian/2.40.1-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch')
-rw-r--r-- | debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch b/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch deleted file mode 100644 index 7dac8b2..0000000 --- a/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch +++ /dev/null @@ -1,117 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Thu, 4 Apr 2024 07:24:58 +0200 -Subject: libblkid: topology/ioctl: simplify ioctl handling -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -Coverity complains about the data copy within the union. -Instead unroll the loop which is less code and easier to follow. - -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -(cherry picked from commit 2ab95860db0b7423906911b8b9e9f231332c2c11) ---- - libblkid/src/topology/ioctl.c | 85 ++++++++++++++----------------------------- - 1 file changed, 27 insertions(+), 58 deletions(-) - -diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c -index 4be20e8..7b15c9e 100644 ---- a/libblkid/src/topology/ioctl.c -+++ b/libblkid/src/topology/ioctl.c -@@ -18,69 +18,38 @@ - - #include "topology.h" - --/* -- * ioctl topology values -- */ --static const struct topology_val { -- -- long ioc; -- size_t kernel_size; -- -- /* 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, sizeof(int), -- .set_int = blkid_topology_set_alignment_offset }, -- { BLKIOMIN, sizeof(int), -- .set_ulong = blkid_topology_set_minimum_io_size }, -- { BLKIOOPT, sizeof(int), -- .set_ulong = blkid_topology_set_optimal_io_size }, -- { BLKPBSZGET, sizeof(int), -- .set_ulong = blkid_topology_set_physical_sector_size }, -- { BLKGETDISKSEQ, sizeof(uint64_t), -- .set_u64 = blkid_topology_set_diskseq }, -- /* we read BLKSSZGET in topology.c */ --}; -- - static int probe_ioctl_tp(blkid_probe pr, - const struct blkid_idmag *mag __attribute__((__unused__))) - { -- size_t i; -- -- for (i = 0; i < ARRAY_SIZE(topology_vals); i++) { -- const struct topology_val *val = &topology_vals[i]; -- int rc = 1; -- union { -- int s32; -- uint64_t u64; -- } data = { 0 }; -- -- if (ioctl(pr->fd, val->ioc, &data) == -1) -- goto nothing; -- -- /* Convert from kernel to libblkid type */ -- if (val->kernel_size == 4) -- data.u64 = data.s32; -- -- if (val->set_int) -- rc = val->set_int(pr, data.u64); -- else if (val->set_ulong) -- rc = val->set_ulong(pr, data.u64); -- else -- rc = val->set_u64(pr, data.u64); -- -- if (rc) -- goto err; -- } -+ uint64_t u64; -+ int s32; -+ -+ if (ioctl(pr->fd, BLKALIGNOFF, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_alignment_offset(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKIOMIN, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_minimum_io_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKIOOPT, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_optimal_io_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKPBSZGET, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_physical_sector_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKGETDISKSEQ, &u64) == -1) -+ return 1; -+ if (blkid_topology_set_physical_sector_size(pr, u64)) -+ return -1; - - return 0; --nothing: -- return 1; --err: -- return -1; - } - - const struct blkid_idinfo ioctl_tp_idinfo = |