[PATCH master 26/39] efi: loader: fix file open mode always setting O_RDWR
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon Feb 16 00:44:26 PST 2026
efi_file_open_int() checks (open_mode & (EFI_FILE_MODE_READ |
EFI_FILE_MODE_WRITE)) which is always true for any valid open mode
since EFI_FILE_MODE_READ is always set. This means files opened with
only EFI_FILE_MODE_READ get O_RDWR instead of O_RDONLY.
Check only for EFI_FILE_MODE_WRITE to correctly distinguish read-only
from read-write opens.
Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
efi/loader/protocols/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/efi/loader/protocols/file.c b/efi/loader/protocols/file.c
index e002057d59ea..93700d2d3bdc 100644
--- a/efi/loader/protocols/file.c
+++ b/efi/loader/protocols/file.c
@@ -113,7 +113,7 @@ static struct efi_file_handle *file_open(struct file_handle *parent,
dirfd = parent->dir ? parent->fd : parent->parent->fd;
- if (open_mode & (EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE))
+ if (open_mode & EFI_FILE_MODE_WRITE)
flags |= O_RDWR;
else
flags |= O_RDONLY;
--
2.47.3
More information about the barebox
mailing list