summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2019-06-25 14:50:05 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2019-06-25 17:32:44 +0200
commit862899cc88e1697211d478de58b2ddc0eaec9cd9 (patch)
tree5dcc340d63d59b104dbe0eb2fb63b28cf72ccc35
parent09aafb61e31c3781530795057c87afaeb53a2bd4 (diff)
downloadlvm2-862899cc88e1697211d478de58b2ddc0eaec9cd9.tar.gz
cov: check result of dev_read_bytes
-rw-r--r--lib/format_text/format-text.c14
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))