From cc271ec31186ebd43ba904451e5a33df33b7f132 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Mon, 23 Sep 2013 09:41:19 +0000 Subject: [PATCH] SemihostFs: Fix check for read-only file or file-open Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14703 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c b/ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c index 5f1159d81a..447ab5631a 100644 --- a/ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c +++ b/ArmPkg/Filesystem/SemihostFs/Arm/SemihostFs.c @@ -345,7 +345,8 @@ FileWrite ( Fcb = SEMIHOST_FCB_FROM_THIS(File); // We cannot write a read-only file - if (Fcb->OpenMode & EFI_FILE_READ_ONLY) { + if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY) + || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) { return EFI_ACCESS_DENIED; } @@ -567,7 +568,8 @@ FileFlush ( if (Fcb->IsRoot) { return EFI_SUCCESS; } else { - if (Fcb->Info.Attribute & EFI_FILE_READ_ONLY) { + if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY) + || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) { return EFI_ACCESS_DENIED; } else { return EFI_SUCCESS; -- 2.39.2