aboutsummaryrefslogtreecommitdiff
path: root/util/cbfstool/cbfstool.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/cbfstool/cbfstool.c')
-rw-r--r--util/cbfstool/cbfstool.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c
index 62edd4b7e6..8ad66c457c 100644
--- a/util/cbfstool/cbfstool.c
+++ b/util/cbfstool/cbfstool.c
@@ -38,7 +38,10 @@ struct command {
int (*function) (void);
// Whether to populate param.image_region before invoking function
bool accesses_region;
- // Whether to write that region's contents back to image_file at the end
+ // This set to true means two things:
+ // - in case of a command operating on a region, the region's contents
+ // will be written back to image_file at the end
+ // - write access to the file is required
bool modifies_region;
};
@@ -1014,7 +1017,7 @@ static const struct command commands[] = {
{"print", "H:r:vh?", cbfs_print, true, false},
{"read", "r:f:vh?", cbfs_read, true, false},
{"remove", "H:r:n:vh?", cbfs_remove, true, true},
- {"update-fit", "H:r:n:x:vh?", cbfs_update_fit, true, false},
+ {"update-fit", "H:r:n:x:vh?", cbfs_update_fit, true, true},
{"write", "r:f:udvh?", cbfs_write, true, true},
};
@@ -1372,8 +1375,11 @@ int main(int argc, char **argv)
return 1;
}
} else {
+ bool write_access = commands[i].modifies_region;
+
param.image_file =
- partitioned_file_reopen(image_name);
+ partitioned_file_reopen(image_name,
+ write_access);
}
if (!param.image_file)
return 1;
@@ -1429,7 +1435,6 @@ int main(int argc, char **argv)
if (commands[i].modifies_region) {
assert(param.image_file);
- assert(commands[i].accesses_region);
for (unsigned region = 0; region < num_regions;
++region) {