diff options
author | Petr Rockai <me@mornfall.net> | 2014-02-28 16:21:09 +0100 |
---|---|---|
committer | Petr Rockai <me@mornfall.net> | 2014-02-28 16:21:09 +0100 |
commit | 3e5bec37e9cec455f20656858ba510b69010676d (patch) | |
tree | 3825294c3624345c27a1550a22a97e5bf27e23b8 | |
parent | c69d37d1260aac04b8964ca92af489a2de0e9d77 (diff) | |
download | lvm2-3e5bec37e9cec455f20656858ba510b69010676d.tar.gz |
format-text: Fix _raw_read_mda_header (missing close, open r/o).
-rw-r--r-- | lib/format_text/format-text.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c index 0d6483a91..e0b2786f2 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c @@ -318,12 +318,15 @@ static void _xlate_mdah(struct mda_header *mdah) static int _raw_read_mda_header(struct mda_header *mdah, struct device_area *dev_area) { - if (!dev_open(dev_area->dev)) + if (!dev_open_readonly(dev_area->dev)) return_0; if (!dev_read(dev_area->dev, dev_area->start, MDA_HEADER_SIZE, mdah)) return_0; + if (!dev_close(dev_area->dev)) + return_0; + if (mdah->checksum_xl != xlate32(calc_crc(INITIAL_CRC, (uint8_t *)mdah->magic, MDA_HEADER_SIZE - sizeof(mdah->checksum_xl)))) { |