summaryrefslogtreecommitdiff
path: root/futility/cmd_validate_rec_mrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'futility/cmd_validate_rec_mrc.c')
-rw-r--r--futility/cmd_validate_rec_mrc.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/futility/cmd_validate_rec_mrc.c b/futility/cmd_validate_rec_mrc.c
index 1d35bed4..7ba59317 100644
--- a/futility/cmd_validate_rec_mrc.c
+++ b/futility/cmd_validate_rec_mrc.c
@@ -222,31 +222,21 @@ static int do_validate_rec_mrc(int argc, char *argv[])
infile = argv[optind++];
- fd = open(infile, O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, "Cannot open %s:%s\n", infile, strerror(errno));
+ if (futil_open_and_map_file(infile, &fd, FILE_RO, &buff, &file_size) !=
+ FILE_ERR_NONE)
return 1;
- }
-
- if (futil_map_file(fd, MAP_RO, &buff, &file_size) != FILE_ERR_NONE) {
- fprintf(stderr, "Cannot map file %s\n", infile);
- close(fd);
- return 1;
- }
if (offset > file_size) {
fprintf(stderr, "File size(%#x) smaller than offset(%#x)\n",
file_size, offset);
- futil_unmap_file(fd, MAP_RO, buff, file_size);
- close(fd);
+ futil_unmap_and_close_file(fd, FILE_RO, buff, file_size);
return 1;
}
if (get_mrc_data_slot((uint16_t *)(buff + offset), &data_offset,
&data_size)) {
fprintf(stderr, "Metadata block error\n");
- futil_unmap_file(fd, MAP_RO, buff, file_size);
- close(fd);
+ futil_unmap_and_close_file(fd, FILE_RO, buff, file_size);
return 1;
}
offset += data_offset;
@@ -259,12 +249,10 @@ static int do_validate_rec_mrc(int argc, char *argv[])
"offset=%#x, file size=%#x, data_size=%#x\n",
offset, file_size, data_size);
- if (futil_unmap_file(fd, MAP_RO, buff, file_size) != FILE_ERR_NONE) {
- fprintf(stderr, "Failed to unmap file %s\n", infile);
- ret = 1;
- }
+ if (futil_unmap_and_close_file(fd, FILE_RO, buff, file_size) !=
+ FILE_ERR_NONE)
+ return 1;
- close(fd);
return ret;
}