mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-30 23:21:08 +03:00
volume_id: fix error handling with failing read()
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
parent
129979643f
commit
726b21604a
@ -145,6 +145,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (ioctl(vid->fd, BLKGETSIZE64, &size) != 0)
|
||||
size = 0;
|
||||
dbg("BLKGETSIZE64=%llu", size);
|
||||
|
||||
if (volume_id_probe_all(vid, 0, size) == 0)
|
||||
goto print;
|
||||
|
@ -197,7 +197,7 @@ set:
|
||||
|
||||
uint8_t *volume_id_get_buffer(struct volume_id *id, uint64_t off, size_t len)
|
||||
{
|
||||
size_t buf_len;
|
||||
ssize_t buf_len;
|
||||
|
||||
dbg("get buffer off 0x%llx(%llu), len 0x%zx", (unsigned long long) off, (unsigned long long) off, len);
|
||||
/* check if requested area fits in superblock buffer */
|
||||
@ -224,7 +224,7 @@ uint8_t *volume_id_get_buffer(struct volume_id *id, uint64_t off, size_t len)
|
||||
}
|
||||
dbg("got 0x%zx (%zi) bytes", buf_len, buf_len);
|
||||
id->sbbuf_len = buf_len;
|
||||
if (buf_len < off + len) {
|
||||
if ((size_t)buf_len < off + len) {
|
||||
dbg("requested 0x%zx bytes, got only 0x%zx bytes", len, buf_len);
|
||||
return NULL;
|
||||
}
|
||||
@ -261,7 +261,7 @@ uint8_t *volume_id_get_buffer(struct volume_id *id, uint64_t off, size_t len)
|
||||
dbg("got 0x%zx (%zi) bytes", buf_len, buf_len);
|
||||
id->seekbuf_off = off;
|
||||
id->seekbuf_len = buf_len;
|
||||
if (buf_len < len) {
|
||||
if ((size_t)buf_len < len) {
|
||||
dbg("requested 0x%zx bytes, got only 0x%zx bytes", len, buf_len);
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user