]> git.proxmox.com Git - mirror_edk2.git/commitdiff
SemihostFs: Fix check for read-only file or file-open
authorOlivier Martin <olivier.martin@arm.com>
Mon, 23 Sep 2013 09:41:19 +0000 (09:41 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 23 Sep 2013 09:41:19 +0000 (09:41 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
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

index 5f1159d81a74060d10faae0a430d4aae06b2a4ed..447ab5631a3e311576f6312cf9b6d1e96460a9e7 100644 (file)
@@ -345,7 +345,8 @@ FileWrite (
   Fcb = SEMIHOST_FCB_FROM_THIS(File);\r
 \r
   // We cannot write a read-only file\r
-  if (Fcb->OpenMode & EFI_FILE_READ_ONLY) {\r
+  if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY)\r
+      || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) {\r
     return EFI_ACCESS_DENIED;\r
   }\r
 \r
@@ -567,7 +568,8 @@ FileFlush (
   if (Fcb->IsRoot) {\r
     return EFI_SUCCESS;\r
   } else {\r
-    if (Fcb->Info.Attribute & EFI_FILE_READ_ONLY) {\r
+    if ((Fcb->Info.Attribute & EFI_FILE_READ_ONLY)\r
+        || !(Fcb->OpenMode & EFI_FILE_MODE_WRITE)) {\r
       return EFI_ACCESS_DENIED;\r
     } else {\r
       return EFI_SUCCESS;\r