diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2019-06-25 14:50:05 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2019-06-25 17:32:44 +0200 |
commit | 862899cc88e1697211d478de58b2ddc0eaec9cd9 (patch) | |
tree | 5dcc340d63d59b104dbe0eb2fb63b28cf72ccc35 | |
parent | 09aafb61e31c3781530795057c87afaeb53a2bd4 (diff) | |
download | lvm2-862899cc88e1697211d478de58b2ddc0eaec9cd9.tar.gz |
cov: check result of dev_read_bytes
-rw-r--r-- | lib/format_text/format-text.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index b9d85a4e1..a09c3496b 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -468,7 +468,12 @@ static struct raw_locn *_read_metadata_location_vg(struct device_area *dev_area, */ memset(vgnamebuf, 0, sizeof(vgnamebuf)); - dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, vgnamebuf); + if (!dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, vgnamebuf)) { + log_error("Failed to read metadata location vg %s at %llu", + dev_name(dev_area->dev), + (unsigned long long)dev_area->start + rlocn->offset); + return 0; + } if (!strncmp(vgnamebuf, vgname, len = strlen(vgname)) && (isspace(vgnamebuf[len]) || vgnamebuf[len] == '{')) @@ -1229,7 +1234,12 @@ int read_metadata_location_summary(const struct format_type *fmt, return 0; } - dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, buf); + if (!dev_read_bytes(dev_area->dev, dev_area->start + rlocn->offset, NAME_LEN, buf)) { + log_error("Can't read metadata location on %s at %llu.", + dev_name(dev_area->dev), + (unsigned long long)(dev_area->start + rlocn->offset)); + return 0; + } while (buf[len] && !isspace(buf[len]) && buf[len] != '{' && len < (NAME_LEN - 1)) |