mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 00:32:04 +02:00
tools: use read-only mmap in fit_check_sign
Add an option to open files in read-only mode in mmap_fdt so that fit_check_sign can be used to inspect files on read-only filesystems. For example, this is useful when a key is shipped in a read-only rootfs or squashfs. Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
This commit is contained in:
@@ -41,13 +41,14 @@ int fit_check_image_types(uint8_t type)
|
||||
}
|
||||
|
||||
int mmap_fdt(const char *cmdname, const char *fname, size_t size_inc,
|
||||
void **blobp, struct stat *sbuf, bool delete_on_error)
|
||||
void **blobp, struct stat *sbuf, bool delete_on_error,
|
||||
bool read_only)
|
||||
{
|
||||
void *ptr;
|
||||
int fd;
|
||||
|
||||
/* Load FIT blob into memory (we need to write hashes/signatures) */
|
||||
fd = open(fname, O_RDWR | O_BINARY);
|
||||
fd = open(fname, (read_only ? O_RDONLY : O_RDWR) | O_BINARY);
|
||||
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "%s: Can't open %s: %s\n",
|
||||
@@ -71,7 +72,9 @@ int mmap_fdt(const char *cmdname, const char *fname, size_t size_inc,
|
||||
}
|
||||
|
||||
errno = 0;
|
||||
ptr = mmap(0, sbuf->st_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
ptr = mmap(0, sbuf->st_size,
|
||||
(read_only ? PROT_READ : PROT_READ | PROT_WRITE), MAP_SHARED,
|
||||
fd, 0);
|
||||
if ((ptr == MAP_FAILED) || (errno != 0)) {
|
||||
fprintf(stderr, "%s: Can't read %s: %s\n",
|
||||
cmdname, fname, strerror(errno));
|
||||
|
Reference in New Issue
Block a user