mirror of
https://github.com/systemd/systemd.git
synced 2024-10-30 14:55:37 +03:00
dissect-image: unknown/unsupported diskseq is indicated by 0, not by UINT64_MAX
At almost all places if diskseq is not supported we encode this as diskseq zero. But in two places we got the check for that wrong, assuming it was UINT64_MAX. Fix that.
This commit is contained in:
parent
32d6707dd1
commit
c12a0d6dcf
@ -435,7 +435,7 @@ static int make_partition_devname(
|
|||||||
assert(nr != 0); /* zero is not a valid partition nr */
|
assert(nr != 0); /* zero is not a valid partition nr */
|
||||||
assert(ret);
|
assert(ret);
|
||||||
|
|
||||||
if (!FLAGS_SET(flags, DISSECT_IMAGE_DISKSEQ_DEVNODE) || diskseq == UINT64_MAX) {
|
if (!FLAGS_SET(flags, DISSECT_IMAGE_DISKSEQ_DEVNODE) || diskseq == 0) {
|
||||||
|
|
||||||
/* Given a whole block device node name (e.g. /dev/sda or /dev/loop7) generate a partition
|
/* Given a whole block device node name (e.g. /dev/sda or /dev/loop7) generate a partition
|
||||||
* device name (e.g. /dev/sda7 or /dev/loop7p5). The rule the kernel uses is simple: if whole
|
* device name (e.g. /dev/sda7 or /dev/loop7p5). The rule the kernel uses is simple: if whole
|
||||||
@ -499,7 +499,7 @@ static int open_partition(
|
|||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
||||||
/* Also check diskseq. */
|
/* Also check diskseq. */
|
||||||
if (loop->diskseq > 0) {
|
if (loop->diskseq != 0) {
|
||||||
uint64_t diskseq;
|
uint64_t diskseq;
|
||||||
|
|
||||||
r = fd_get_diskseq(fd, &diskseq);
|
r = fd_get_diskseq(fd, &diskseq);
|
||||||
@ -573,7 +573,7 @@ static int dissect_image(
|
|||||||
* Returns -ENXIO if we couldn't find any partition suitable as root or /usr partition
|
* Returns -ENXIO if we couldn't find any partition suitable as root or /usr partition
|
||||||
* Returns -ENOTUNIQ if we only found multiple generic partitions and thus don't know what to do with that */
|
* Returns -ENOTUNIQ if we only found multiple generic partitions and thus don't know what to do with that */
|
||||||
|
|
||||||
uint64_t diskseq = m->loop ? m->loop->diskseq : UINT64_MAX;
|
uint64_t diskseq = m->loop ? m->loop->diskseq : 0;
|
||||||
|
|
||||||
if (verity && verity->root_hash) {
|
if (verity && verity->root_hash) {
|
||||||
sd_id128_t fsuuid, vuuid;
|
sd_id128_t fsuuid, vuuid;
|
||||||
|
Loading…
Reference in New Issue
Block a user